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 }