001/* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016package org.opengion.fukurou.taglet; 017 018/** 019 * 属性情報を管理する、AttKeySet クラスです。 020 * 021 * @version 4.0 022 * @author Kazuhiko Hasegawa 023 * @since JDK5.0, 024 */ 025class AttKeySet { 026 private final String searchKey ; 027 private final int len ; 028 private final String seq ; 029 private final String valueName ; 030 031 /** 032 * コンストラクター 033 * 034 * @param searchKey String 035 * @param seq int 036 * @param valueName String 037 * 038 */ 039 AttKeySet( final String searchKey,final int seq,final String valueName ) { 040 this.searchKey = searchKey ; 041 this.seq = String.valueOf( seq ); 042 this.valueName = valueName ; 043 044 len = searchKey.length(); 045 } 046 047 /** 048 * シーケンス番号を返します。 049 * 050 * @return シーケンス番号 051 * 052 */ 053 String getSeq() { 054 return seq; 055 } 056 057 /** 058 * 属性名を返します。 059 * 060 * @return 属性名 061 * 062 */ 063 String getValueName() { 064 return valueName; 065 } 066 067 /** 068 * クラス名の先頭一致の場合の、**** 部分を返します。 069 * インターフェースも扱えるように修正しましたので、先頭が _ の場合は、 070 * _ を削除して返します。 071 * 072 * @param name クラスの名称(例:DBCellEditor_**** , ViewForm_****) 073 * @return クラス名の**** 部分 074 */ 075 String getAttKey( final String name ) { 076 String rtn = null; // 一致しなかった。 077 078 if( name.equals( searchKey ) ) { // 完全一致:インターフェース 079 return "(Interface)" + name ; 080 } 081 082 int start = name.indexOf( searchKey ); 083 if( start == 0 ) { // 先頭一致した。 084 rtn = name.substring( len ); 085 } 086 087 if( rtn != null && rtn.charAt(0) == '_' ) { return rtn.substring( 1 ); } 088 return rtn ; 089 } 090}