org.opengion.hayabusa.taglib

## クラス JspCreateTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.JspCreateTag

- すべての実装されたインタフェース:
    Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

      public class JspCreateTag
      extends CommonTagSupport

       JspCreateTag は、画面定義情報より、JSP画面を自動作成するツールです。

       画面作成するにあたり、３箇所の参照元が存在します。

         １．画面属性の設定 ： 雛形   → 仮画面   ・・・ hpgid で指定の画面ID
         ２．仮画面修正     ： 仮画面 → 仮画面   ・・・ jsp/customUserDef/画面ID
         ３．本環境修正     ： 本画面 → 本画面   ・・・ jsp/画面ID

       それぞれ、作成先の画面IDフォルダが存在する場合は、取込元を作成先に設定します。
       つまり、一度作成すると、それ以降は、作成された画面を基準に処理を行います。

  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:jspCreate outdir="…" pgid="…" />
         ●body：なし

         ●Tag定義：
           <og:jspCreate
               pgid             ○【TAG】プログラムIDを指定します(必須)。
               outdir             【TAG】作成先のディレクトリを指定します(初期値:HybsSystem#REAL_PATH + "jsp/")
               hpgid              【TAG】雛形のプログラムIDを指定します
               useUserDef         【TAG】仮環境を使用するかどうか[true/false]を指定します(初期値:true:使用する)
               tagNames           【TAG】処理を行うタグを部分指定します(初期値:内部登録タグすべて)
               tableId            【TAG】(通常は使いません)DBTableModel が登録されているメモリのキーを指定します
               scope              【TAG】キャッシュする場合のスコープ[request/page/session/applicaton]を指定します(初期値:session)
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           />

         ●使用例
            ・先に、query タグでDBTableModel が作成済み
                  <og:jspCreate
                      outdir      = "{@SYS.REAL_PATH}jsp/"    ：出力先フォルダ
                      pgid        = "{@PGID}"                 ：作成画面ID
                      hpgid       = "{@HPGID}"                ：雛形画面ID
                      useUserDef  = "true/false"                   ：仮環境の使用可否(初期値:true 使用する)
                  />

  変更履歴:

    5.1.9.0 (2010/08/01) 新規作成

  機能分類
    開発補助
  バージョン
    0.9.0 2000/10/17
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK1.6,

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `JspCreateTag()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `boolean` | `execute()` DBTableModel処理を実行します。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setHpgid(String id)` 【TAG】雛形のプログラムIDを指定します。
    `void` | `setOutDir(String dir)` 【TAG】作成先のディレクトリを指定します(初期値:HybsSystem#REAL_PATH + "jsp/")。
    `void` | `setPgid(String id)` 【TAG】プログラムIDを指定します。
    `void` | `setTableId(String id)` 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setTagNames(String tags)` 【TAG】処理を行うタグを部分指定します(初期値:内部登録タグすべて)。
    `void` | `setUseUserDef(String flag)` 【TAG】仮環境を使用するかどうか[true/false]を指定します(初期値:true:使用する)。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### コンストラクタの詳細

    - #### JspCreateTag

          public JspCreateTag()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
        `doStartTag` インタフェース内 `Tag`
      オーバーライド:
        `doStartTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示(SKIP_BODY)

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        5.6.8.0 (2013/09/06) tagNames 追加

    - #### execute

          public boolean execute()

      DBTableModel処理を実行します。
      戻り値:
        処理の実行結果
      変更履歴:

        5.2.1.0 (2010/10/01) 実行クラスのクラス名を変更します。 _OG_ を削除
        5.5.2.6 (2012/05/25) findbugs対応。JspConvertEntity.DBKEY を、JspConvertEntity.getDBKEY() に変更。
        5.6.8.0 (2013/09/06) 処理対象タグの部分指定対応 (tagNames 追加)
        6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
        6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。
        6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。
        6.5.0.1 (2016/10/21) ErrorMessage をまとめるのと、直接 Throwable を渡します。

    - #### setTableId

          public void setTableId(String id)

      【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `id` - テーブルID (sessionに登録する時のID)
      説明:

             検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に
             渡す場合に、通常は、session を利用します。その場合の登録キーです。
             query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、
             この tableId 属性を利用して、メモリ空間を分けます。
            		(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。

    - #### setOutDir

          public void setOutDir(String dir)

      【TAG】作成先のディレクトリを指定します(初期値:HybsSystem#REAL_PATH + "jsp/")。
      パラメータ:
        `dir` - 出力先のディレクトリ
      説明:

             作成先のディレクトリを指定します。
             初期値は、実際に実行しているアプリケーションの REAL_PATH + jsp フォルダ以下です。
             作成先のフォルダも、useUserDef の設定によって異なります。

      変更履歴:

        6.0.2.4 (2014/10/17) メソッド名の統一の為

    - #### setPgid

          public void setPgid(String id)

      【TAG】プログラムIDを指定します。
      パラメータ:
        `id` - プログラムID
      説明:

             作成先のプログラムIDを指定します。
             ただし、作成先の実際のフォルダは、useUserDef の設定によって異なります。

    - #### setHpgid

          public void setHpgid(String id)

      【TAG】雛形のプログラムIDを指定します。
      パラメータ:
        `id` - 雛形のプログラムID
      説明:

             雛形のプログラムIDをパースして、実際のプログラムを作成します。
             ただし、作成先の実際のフォルダは、useUserDef の設定によって異なります。
             また、パースするのは、作成先の画面IDのフォルダが存在しない場合のみです。
             すでに、存在している場合は、元の画面IDのフォルダを読み取って、パースを
             行います。基本的に、作成先のソースを手で修正した場合でも、パースと
             無関係な箇所の修正はそのまま反映のこされます。

    - #### setUseUserDef

          public void setUseUserDef(String flag)

      【TAG】仮環境を使用するかどうか[true/false]を指定します(初期値:true:使用する)。
      パラメータ:
        `flag` - 仮環境の使用 [true:使用する/false:使用しない]
      説明:

             true:使用する を設定すると、"customUserDef" フォルダの下に、画面IDの
             フォルダを作成します。
             false:使用しない を設定すると、実際の リアルパス(REAL_PATH/jsp)の下に、
             画面IDのフォルダを作成します。こちらは、実際の画面と同様に、画面リソース等を
             作成してアクセスすることになります。

    - #### setTagNames

          public void setTagNames(String tags)

      【TAG】処理を行うタグを部分指定します(初期値:内部登録タグすべて)。
      パラメータ:
        `tags` - 処理を行うタグを部分指定
      説明:

             処理を行うタグは、内部的に、COMMENT,HIDEMENU,COLUMN,ORDER_BY,QUERY,VIEW,TABLE_UPDATE だけ
             予約されており、初期値は、すべてのタグを処理します。
             ここでは、その一部のみ実行できるように、CSV形式で指定できるようにします。
             実行不可のタグ名を指定すると、エラーになります。

      変更履歴:

        5.6.8.0 (2013/09/06) 新規追加
        6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。
        6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現
      このメソッドは、nullを返しません

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.