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.plugin.develop;
017    
018    import java.util.List;
019    import java.util.Map;
020    import java.util.Calendar;
021    
022    import org.opengion.hayabusa.develop.AbstractJspCreate;
023    import org.opengion.hayabusa.develop.JspConvertEntity;
024    import org.opengion.fukurou.xml.OGElement;
025    import org.opengion.fukurou.xml.OGAttributes;
026    import org.opengion.fukurou.util.HybsDateUtil;
027    import org.opengion.fukurou.util.StringUtil;                    // 5.6.8.0 (2013/09/06)
028    
029    /**
030     * query.jspの<og:comment>タグを作?します?
031     * comment タグは、既存?
032     *
033     * ●使用?
034     *      <og:comment
035     *          system   = ENTITY.getNmSys() 
036     *          pgid     = ENTITY.getPgid()  
037     *          title    = ENTITY.getNmpg()  
038     *          date     = HybsDateUtil.getDate( "yyyy/MM/dd" ) 
039     *          author   = "Auto Create"     
040     *          text     = ""                
041     *          version  = "001"             
042     *      />
043     *
044     * @og.rev 5.6.1.2 (2013/02/22) ??連結から?XML処?るよ?変更します?
045     *
046     * @author Administrator
047     *
048     */
049    public class JspCreate_COMMENT extends AbstractJspCreate {
050            //* こ?プログラ??VERSION??を設定します?       {@value} */
051            private static final String VERSION = "5.6.8.0 (2013/09/06)" ;
052    
053            private static final String DEF_DATE_FORMAT = "yyyy/MM/dd" ;            // 5.6.8.0 (2013/09/06)
054            private static final String DEF_AUTHOR_NAME = "Auto Create" ;           // 5.6.8.0 (2013/09/06)
055    
056            private List<JspConvertEntity> COMMENT_ROWS ;
057            private boolean IS_NULL ;
058    
059            /**
060             * 初期化メソ?
061             *
062             * ?で使用する JspConvertEntity の リス?のマップを受け取り、?期化を行います?
063             * @og.rev 5.2.1.0 (2010/10/01) 名前空間を、og 決め打ちから、名前空間指定無しに変更します?
064             * @og.rev 5.6.1.2 (2013/02/22) 処?象のファイル名を?するよ?変更します?
065             *
066             * @param       master  JspConvertEntityのリスト?マッ?
067             */
068            @Override
069            protected void init( final Map<String,List<JspConvertEntity>> master ) {
070                    COMMENT_ROWS = master.get("COMMENT");
071                    IS_NULL = !isNotEmpty( COMMENT_ROWS );
072                    KEY  = ":comment";              // 5.2.1.0 (2010/10/01) 名前空間指定無?
073                    NAME = "query,result,update,entry";
074            }
075    
076            /**
077             * ファイル名から?処?象かど?を判断します?
078             *
079             * @og.rev 5.6.1.2 (2013/02/22) 処?象のファイル名を?するため??します?
080             *
081             * @param       name    処?象のファイル?
082             *
083             * @return      処?象な?true/ そうでなければ、false
084             */
085    //      @Override
086    //      protected boolean isExecute( final String name ) {
087    //              return ( name != null && name.indexOf( "index" ) < 0 && name.indexOf( "forward" ) < 0 );
088    //      }
089    
090            /**
091             * JSPに出力するタグの?を作?します?
092             * 引数より作?前?タグの属??を確認するする事が出来ます?
093             *
094             * @og.rev 5.2.1.0 (2010/10/01) メソ?の引数を?OGAttributes から OGElement に変更します?
095             * @og.rev 5.2.1.0 (2010/10/01) 名前空間を、og 決め打ちから、引数を使用するように変更します?
096             * @og.rev 5.6.1.2 (2013/02/22) XML処?るよ?変更します?
097             * @og.rev 5.6.8.0 (2013/09/06) 日付?フォーマット変換します?author と text は更新しません?
098             *
099             * @param ele OGElementエレメントオブジェク?
100             * @param       nameSpace       こ?ドキュメント?nameSpace( og と?mis と?)
101             *
102             * @return      変換された文字?
103             * @throws Throwable 変換時?エラー
104             */
105            @Override
106            protected String execute( final OGElement ele , final String nameSpace )  throws Throwable {
107                    if( IS_NULL ) { return ""; }
108    
109                    // こ? OGElement の階層の深さを探ります?
110                    // ele.getText( para ) とすることでXML全体を階層表示できる?
111            //      int para = ele.getParentCount();
112    
113                    JspConvertEntity ENTITY = COMMENT_ROWS.get(0);
114    
115                    OGAttributes attri = ele.getOGAttributes();
116    
117                    // 5.6.8.0 (2013/09/06) 日付?フォーマット変換します?author は、あれ???値を使?す?
118                    String dtFmt  = StringUtil.nval( attri.getVal( "date"   ) , DEF_DATE_FORMAT );
119                    String author = StringUtil.nval( attri.getVal( "author" ) , DEF_AUTHOR_NAME );
120    
121                    attri.setUseCR( true );
122                    attri.setVal( "system"  , ENTITY.getNmSys()     );
123                    attri.setVal( "pgid"    , ENTITY.getPgid()      );
124                    attri.setVal( "title"   , ENTITY.getNmpg()      );
125    //              attri.setVal( "date"    , toDay()                       );
126    //              attri.setVal( "date"    , HybsDateUtil.getDate( "yyyy/MM/dd" ) );               // 5.6.1.2 (2013/02/22)
127    //              attri.setVal( "author"  , "Auto Create"         );
128                    attri.setVal( "date"    , HybsDateUtil.getDate( dtFmt ) );                              // 5.6.8.0 (2013/09/06)
129                    attri.setVal( "author"  , author        );                                                                      // 5.6.8.0 (2013/09/06)
130    //              attri.setVal( "text"    , ""                            );                                                      // 5.6.8.0 (2013/09/06)
131                    attri.setVal( "version" , "001"                         );
132    
133                    return ele.getText( 0 );
134            }
135    
136            /**
137             * JSPに出力するタグの?を作?します?
138             * 引数より作?前?タグの属??を確認するする事が出来ます?
139             *
140             * @og.rev 5.2.1.0 (2010/10/01) メソ?の引数を?OGAttributes から OGElement に変更します?
141             * @og.rev 5.2.1.0 (2010/10/01) 名前空間を、og 決め打ちから、引数を使用するように変更します?
142             *
143             * @param ele OGElementエレメントオブジェク?
144             * @param       nameSpace       こ?ドキュメント?nameSpace( og と?mis と?)
145             *
146             * @return      変換された文字?
147             * @throws Throwable 変換時?エラー
148             */
149    //      @Override
150    //      protected String execute( final OGElement ele , final String nameSpace )  throws Throwable {
151    //              if( IS_NULL ) { return ""; }
152    //
153    //              String ns = (nameSpace.length() == 0) ? "" : nameSpace + ":" ;  // 5.2.1.0 (2010/10/01) 名前空?
154    //
155    //              JspConvertEntity ENTITY = COMMENT_ROWS.get(0);
156    //
157    //              // TODO Auto-generated method stub
158    //              //書き?す文字?を作?開始?
159    //              StringBuilder sbTub = new StringBuilder();
160    //              sbTub.append( "<" ).append( ns ).append( "comment").append( CR );
161    //              sbTub.append( "\tsystem  = \""  ).append( ENTITY.getNmSys()     ).append( "\"" ).append( CR );
162    //              sbTub.append( "\tpgid    = \""  ).append( ENTITY.getPgid()      ).append( "\"" ).append( CR );
163    //              sbTub.append( "\ttitle   = \""  ).append( ENTITY.getNmpg()      ).append( "\"" ).append( CR );
164    //              sbTub.append( "\tdate    = \""  ).append( toDay()                       ).append( "\"" ).append( CR );
165    //              sbTub.append( "\tauthor  = \""  ).append( "Auto Create"         ).append( "\"" ).append( CR );
166    //              sbTub.append( "\ttext    = \""  ).append( ""                            ).append( "\"" ).append( CR );
167    //              sbTub.append( "\tversion = \""  ).append( "001"                         ).append( "\"" ).append( CR );
168    //              sbTub.append( "/>" ).append( CR );
169    //              return sbTub.toString();
170    //      }
171    
172            /**
173             * 現在の日?yyyy/MM/dd)を取得?
174             *
175             * @return 現在の日?
176             */
177    //      private String toDay(){
178    //               //インスタンス?
179    //               Calendar now = Calendar.getInstance();
180    //
181    //              int year = now.get(Calendar.YEAR);
182    //              int mm   = now.get(Calendar.MONTH) + 1;
183    //              int dd   = now.get(Calendar.DATE);
184    //
185    //              String month = String.valueOf( mm );
186    //              if (mm < 10){
187    //                      month = "0" + month ;
188    //              }
189    //              String day = String.valueOf( dd );
190    //              if (dd < 10){
191    //                      day = "0" + day ;
192    //              }
193    //              return year + "/" + month + "/" + day;
194    //      }
195    }