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 */
016 package org.opengion.hayabusa.taglib;
017
018 /**
019 * JSPアプリケーションに対してバã?ジョン管ç�?�§きるようにコメントを
020 * 記述するためのタグですã?
021 *
022 * バã?ジョン、ビルド番号、日付ã?変更è€??タイトルなどを記述できますã?
023 * 変更å†?®¹は、text属æ?かã?BODY 部に記述しますã?
024 * パラメーター変数({@XXXX})は、使用できませんã€?
025 *
026 * @og.formSample
027 * ●形式ï¼?lt;og:comment title="?¥?¥?¥" version="?¥?¥?¥" date="?¥?¥?¥" author="?¥?¥?¥" ?¥?¥?¥ />
028 * ●body?šあã‚?EVAL_BODY_BUFFERED:BODYを評価しã?{@XXXX} を解析しまã�?
029 *
030 * ●Tag定義??
031 * <og:comment
032 * rdcCode 【TAG】コメントã?設計変更要求コードを設定しまã�?
033 * title ○ã?TAG】コメントã?タイトルを設定しまã�?å¿??)ã€?
034 * version ○ã?TAG】コメントã?バã?ジョンを設定しまã�?å¿??)ã€?
035 * build 【TAG】コメントã?ビルド番号を設定しまã�?
036 * date ○ã?TAG】コメントã?変更日付を設定しまã�?å¿??)ã€?
037 * author ○ã?TAG】コメントã?変更è€?‚’設定しまã�?å¿??)ã€?
038 * text 【TAG】コメントã?å†?®¹を設定しまã�?
039 * debug 【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
040 * pgid 【TAG】コメントã?プログラãƒ?Dを設定しまã�?
041 * system 【TAG】コメントã?シスãƒ?ƒ 名称を設定しまã�?
042 * > ... Body ...
043 * </og:comment>
044 *
045 * ●使用ä¾?
046 * <og:comment
047 * title = "変更概è¦?
048 * version = "001"
049 * date = "YYYY/MM/DD"
050 * author = "Y.MATSUI(Hybs) "
051 * rdcCode = "RDC00001"
052 * text = "当å?ç�?¸の変更å†?®¹を記述しますã?"
053 * />
054 *
055 * <og:comment
056 * title = "変更概è¦?
057 * version = "001"
058 * date = "YYYY/MM/DD"
059 * author = "Y.MATSUI(Hybs) "
060 * rdcCode = "RDC00001"
061 * build = "ビルド番号" (å¿??属æ?では有りませんã€?
062 * >
063 * 当å?ç�?¸の変更å†?®¹を記述しますã?
064 * </og:comment>
065 *
066 * @og.rev 2.1.3.0 (2002/12/12) JSP画面の管ç�?”¨に、画面に変更履歴を持たせる為のタグを新規作æ?
067 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
068 * @og.group 画面部å“?
069 *
070 * @version 4.0
071 * @author Kazuhiko Hasegawa
072 * @since JDK5.0,
073 */
074 public class CommentTag extends CommonTagSupport {
075 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
076 private static final String VERSION = "4.0.0.0 (2005/08/31)" ;
077
078 private static final long serialVersionUID = 400020050831L ;
079
080 private String rdcCode = null;
081 private String title = null;
082 private String version = null;
083 private String build = null;
084 private String date = null;
085 private String author = null;
086 private String text = null;
087 private String pgid = null; // 3.8.9.3
088 private String system = null; // 3.8.9.3
089
090 /**
091 * Taglibの開始タグが見つかったときに処ç�?�™ã‚?doStartTag() ã‚?オーバã?ライドしますã?
092 *
093 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
094 *
095 * @return 後続å?ç�??æŒ?¤º
096 */
097 @Override
098 public int doStartTag() {
099 if( text == null ) {
100 return( EVAL_BODY_BUFFERED ); // Body を評価するã€? extends BodyTagSupport æ™?
101 }
102 else {
103 return(SKIP_BODY); // Body を評価しなã�?
104 }
105 }
106
107 /**
108 * Taglibのタグ本体を処ç�?�™ã‚?doAfterBody() ã‚?オーバã?ライドしますã?
109 *
110 * @og.rev 2.2.0.0 (2002/12/17) 中国èª?国際化)対å¿?エンコードã?取得方法変更
111 * @og.rev 3.0.0.0 (2002/12/25) StringUtil#changeString å»?¢
112 * @og.rev 3.1.1.0 (2003/03/28) ボディのå†?®¹を取得するå?ç�?‚’、CommonTagSupport で行うã€?
113 *
114 * @return 後続å?ç�??æŒ?¤º(SKIP_BODY)
115 */
116 @Override
117 public int doAfterBody() {
118 text = getBodyString();
119
120 return(SKIP_BODY);
121 }
122
123 /**
124 * タグリブオブジェクトをリリースしますã?
125 * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
126 *
127 * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿グの release() メソãƒ?ƒ‰をã?追åŠ?
128 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()で呼ぶã€?
129 * @og.rev 3.3.2.0 (2003/07/07) 設計変更要求コーãƒ?rdcCode)属æ?を追åŠ??
130 * @og.rev 3.8.9.3 (2007/08/31) PGID(pgid)、シスãƒ?ƒ 名称(system)属æ?を追åŠ??
131 *
132 */
133 @Override
134 protected void release2() {
135 super.release2();
136 rdcCode = null;
137 title = null;
138 version = null;
139 build = null;
140 date = null;
141 author = null;
142 text = null;
143 pgid = null; // 3.8.9.3
144 system = null; // 3.8.9.3
145 }
146
147 /**
148 * 【TAG】コメントã?設計変更要求コードを設定しますã?
149 *
150 * @og.tag コメントã?設計変更要求コードを設定しますã?
151 *
152 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
153 *
154 * @param val 設計変更要求コーãƒ?
155 */
156 public void setRdcCode( final String val ) {
157 rdcCode = val;
158 }
159
160 /**
161 * 【TAG】コメントã?タイトルを設定しますã?
162 *
163 * @og.tag コメントã?タイトルを設定しますã?
164 *
165 * @og.rev 2.2.0.0 (2002/12/17) 中国èª?国際化)対å¿?エンコードã?取得方法変更
166 * @og.rev 3.0.0.0 (2002/12/25) StringUtil#changeString å»?¢
167 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
168 *
169 * @param val タイトル
170 */
171 public void setTitle( final String val ) {
172 title = val;
173 }
174
175 /**
176 * 【TAG】コメントã?バã?ジョンを設定しますã?
177 *
178 * @og.tag コメントã?バã?ジョンを設定しまã�?
179 *
180 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
181 *
182 * @param val バã?ジョン
183 */
184 public void setVersion( final String val ) {
185 version = val;
186 }
187
188 /**
189 * 【TAG】コメントã?ビルド番号を設定しますã?
190 *
191 * @og.tag コメントã?ビルド番号を設定しまã�?
192 *
193 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
194 *
195 * @param val ビルド番号
196 */
197 public void setBuild( final String val ) {
198 build = val;
199 }
200
201 /**
202 * 【TAG】コメントã?変更日付を設定しますã?
203 *
204 * @og.tag コメントã?変更日付を設定しまã�?
205 *
206 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
207 *
208 * @param val 変更日ä»?
209 */
210 public void setDate( final String val ) {
211 date = val;
212 }
213
214 /**
215 * 【TAG】コメントã?変更è€?‚’設定しますã?
216 *
217 * @og.tag コメントã?変更è€?‚’設定しまã�?
218 *
219 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
220 *
221 * @param val 変更è€?
222 */
223 public void setAuthor( final String val ) {
224 author = val;
225 }
226
227 /**
228 * 【TAG】コメントã?å†?®¹を設定しますã?
229 *
230 * @og.tag コメントã?å†?®¹を設定しますã?
231 * ここでのå†?®¹は、BODY部に記述することも可能ですã?
232 * 両方に記述した場合ã?、text属æ?を優先しますã?
233 *
234 * @og.rev 3.3.1.0 (2003/06/24) text 属æ?追åŠ??パラメータ変数を使えなã�?‚ˆã�?�«変更ã€?
235 *
236 * @param val コメントã?å†?®¹
237 */
238 public void setText( final String val ) {
239 text = val;
240 }
241
242 /**
243 * 【TAG】コメントã?プログラãƒ?Dを設定しますã?
244 *
245 * @og.tag コメントã?プログラãƒ?Dを設定しますã?
246 *
247 * @param val プログラãƒ?D
248 */
249 public void setPgid( final String val ) {
250 pgid = val;
251 }
252
253 /**
254 * 【TAG】コメントã?シスãƒ?ƒ 名称を設定しますã?
255 *
256 * @og.tag コメントã?シスãƒ?ƒ 名称を設定しますã?
257 *
258 * @param val シスãƒ?ƒ 名称
259 */
260 public void setSystem( final String val ) {
261 system = val;
262 }
263
264 /**
265 * こã?オブジェクトã?æ–?—å?表現を返しますã?
266 * 基本çš?�«ãƒ?ƒ�ãƒ?‚°目çš?�«使用しますã?
267 *
268 * @return こã?クラスのæ–?—å?表現
269 */
270 @Override
271 public String toString() {
272 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
273 .println( "VERSION" ,VERSION )
274 .println( "rdcCode" ,rdcCode )
275 .println( "title" ,title )
276 .println( "version" ,version )
277 .println( "build" ,build )
278 .println( "date" ,date )
279 .println( "author" ,author )
280 .println( "text" ,text )
281 .println( "pgid" ,pgid )
282 .println( "system" ,system )
283 .println( "Other..." ,getAttributes().getAttribute() )
284 .fixForm().toString() ;
285 }
286 }