org.opengion.hayabusa.taglib

## クラス EqualsTag

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

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

      public class EqualsTag
      extends CommonTagSupport

       val1 属性 と val2 属性の文字列表現の比較により BODY を表示/非表示を切り替えるタグです。

       val1.equals( val2 ) が 成立すれば､ BODY を表示します。
       val1 が null( or ゼロ文字列) の場合は、無条件で非成立になります。
        ( val1 == val2 ) はチェックしないというイメージです。
       val1 が null( or ゼロ文字列) かどうか判断する場合は、nullCheck="true" を使用してください。
       その他の属性は、比較方法を指定します。

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

         ●形式：<og:equals val1="…" val2="[…]" ･･･ >･･･</og:equals>
         ●body：あり(EVAL_BODY_INCLUDE:BODYをインクルードし、{@XXXX} は解析しません)

         ●Tag定義：
           <og:equals
               val1             ○【TAG】equals で比較するときの、第１引数(左辺)を指定します(必須)。
               val2               【TAG】equals で比較するときの、第２引数(右辺)を指定します
               ignoreCase         【TAG】大文字/小文字を区別しないかどうか[true/false]を指定します(初期値:false(区別する))
               useTrim            【TAG】比較対象の引数を、trim()するかどうか[true/false]を指定します(初期値:false(trimしない))
               startsWith         【TAG】この文字列が、指定された接頭辞で始まるかどうか[true/false]を判定します(初期値:false)
               endsWith           【TAG】指定された接尾辞で終るかどうか[true/false]を判定します(初期値:false)
               nullCheck          【TAG】null チェックを行うかどうか[true/false]を指定します(初期値:false)
               notEquals          【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)
               contains           【TAG】文字列が含まれているかどうか[true/false]の判定します(初期値:false)
               matches            【TAG】指定された正規表現と一致するかどうか[true/false]を判定します(初期値:false)
               useStop            【TAG】BODYを処理後に停止するかどうか[true/false]を指定します(初期値:false)
               operator           【TAG】比較する操作を EQ,LT,LE,GT,GE から指定します(初期値:EQ)
               compareType        【TAG】大小比較する方法(STRING:前方比較 、NUMBER:数値比較)を指定します(初期値:STRING)
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           >   ... Body ...
           </og:equals>

         ●使用例
              ・<og:equals val1="ABCD" val2="{@value}" >
                    val1.equals( val2 ) 時に実行したい内容
                </og:equals>

              ・<og:equals val1="{@value}" nullCheck="true" >
                    val1がnullの時に実行したい内容
                </og:equals>

              ・<og:equals val1="AbcD" val2="{@value}" ignoreCase="true" >
                    val1.equalsIgnoreCase( val2 ) 時に実行したい内容
                </og:equals>

              ・<og:equals val1="ABCD" val2="{@value}" startsWith="true" >
                    val1.startsWith( val2 ) 時に実行したい内容
                </og:equals>

  変更履歴:

    6.4.2.0 (2016/01/29) ソースの内部構造の全体的な見直し。

  機能分類
    画面制御
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    - ### クラスから継承されたフィールド 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`

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

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

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

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setCompareType(String type)` 【TAG】大小比較する方法(STRING:前方比較 、NUMBER:数値比較)を指定します(初期値:STRING)。
    `void` | `setContains(String flag)` 【TAG】文字列が含まれているかどうか[true/false]の判定します(初期値:false)。
    `void` | `setEndsWith(String flag)` 【TAG】指定された接尾辞で終るかどうか[true/false]を判定します(初期値:false)。
    `void` | `setIgnoreCase(String flag)` 【TAG】大文字/小文字を区別しないかどうか[true/false]を指定します(初期値:false(区別する))。
    `void` | `setMatches(String flag)` 【TAG】指定された正規表現と一致するかどうか[true/false]を判定します(初期値:false)。
    `void` | `setNotEquals(String flag)` 【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)。
    `void` | `setNullCheck(String flag)` 【TAG】null チェックを行うかどうか[true/false]を指定します(初期値:false)。
    `void` | `setOperator(String ope)` 【TAG】比較する操作を EQ,LT,LE,GT,GE から指定します(初期値:EQ)。
    `void` | `setStartsWith(String flag)` 【TAG】この文字列が、指定された接頭辞で始まるかどうか[true/false]を判定します(初期値:false)。
    `void` | `setUseStop(String flag)` 【TAG】BODYを処理後に停止するかどうか[true/false]を指定します(初期値:false)。
    `void` | `setUseTrim(String flag)` 【TAG】比較対象の引数を、trim()するかどうか[true/false]を指定します(初期値:false(trimしない))。
    `void` | `setVal1(String val)` 【TAG】equals で比較するときの、第１引数(左辺)を指定します。
    `void` | `setVal2(String val)` 【TAG】equals で比較するときの、第２引数(右辺)を指定します。
    `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`

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

    - #### EqualsTag

          public EqualsTag()

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

        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`
      戻り値:
        後続処理の指示
      変更履歴:

        3.2.0.0 (2003/05/22) 判定方法に,contains,endsWith,matches の方法を追加
        3.8.1.3B (2006/01/30) operator、compareType 属性を追加します。
        3.8.5.1 (2006/04/28) equals の結果が true 時のみ、useStop="true" を有効にする。
        6.4.2.0 (2016/01/29) ソースの内部構造の全体的な見直し。

    - #### doEndTag

          public int doEndTag()

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

        3.8.1.2 (2005/12/19) useStop 属性を処理します。
        6.4.2.0 (2016/01/29) ソースの内部構造の全体的な見直し。
        6.4.2.1 (2016/02/05) debugPrint() の追加。

    - #### release2

          protected void release2()

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

        2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加
        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.2.0.0 (2003/05/22) 判定方法に,contains,endsWith,matches の方法を追加
        3.8.1.2 (2005/12/19) useStop 属性の追加
        3.8.1.3 (2006/01/30) operator、compareType 属性を追加します。
        5.1.2.0 (2010/01/01) ignoreCase属性の初期値をfalse(大文字、小文字を区別する)
        6.4.2.0 (2016/01/29) trim属性を追加します。

    - #### setVal1

          public void setVal1(String val)

      【TAG】equals で比較するときの、第１引数(左辺)を指定します。
      パラメータ:
        `val` - 第１引数
      説明:

             equals で比較するときの、第１引数を指定します。
             val1 が null の場合は、無条件で非成立になります。
              ( val1 == val2 ) はチェックしないというイメージです。
             val1 が null かどうか判断する場合は、nullCheck="true" を使用してください。

    - #### setVal2

          public void setVal2(String val)

      【TAG】equals で比較するときの、第２引数(右辺)を指定します。
      パラメータ:
        `val` - 第２引数
      説明:

             equals で比較するときの、第２引数を指定します。

    - #### setIgnoreCase

          public void setIgnoreCase(String flag)

      【TAG】大文字/小文字を区別しないかどうか[true/false]を指定します(初期値:false(区別する))。
      パラメータ:
        `flag` - 大文字/小文字を区別しないかどうか [true:しない/それ以外:する]
      説明:

             startsWith , contains , endsWith , equalsIgnoreCase での比較時に、比較対象の
             大文字/小文字を区別しないかどうかを指定します。
             区別しない ("true") 場合、aaa と AAA は、一致したとみなされます。
             初期値は、区別する ("false") です。

    - #### setUseTrim

          public void setUseTrim(String flag)

      【TAG】比較対象の引数を、trim()するかどうか[true/false]を指定します(初期値:false(trimしない))。
      パラメータ:
        `flag` - trimするかどうか [true:する/それ以外:しない]
      説明:

             equals , startsWith , contains , endsWith 等での比較時に、比較対象の
             引数を、両端空白文字（スペース、タブ、改行など）を削除します。
             この処理を行う場合は、一番最初に行います。nullCheck などは、trim() された結果を使用します。
             初期値は、trimしない ("false") です。

      変更履歴:

        6.4.2.0 (2016/01/29) trim属性を追加します。

    - #### setStartsWith

          public void setStartsWith(String flag)

      【TAG】この文字列が、指定された接頭辞で始まるかどうか[true/false]を判定します(初期値:false)。
      パラメータ:
        `flag` - 接頭辞で始まるかどうか [true:判定する/それ以外:しない]
      説明:

             val1.startsWith( val2 ) の書式で判定されます。この場合、"ABCDEFG".startsWith( "ABC" )
             の場合に、条件成立します。(つまり、val1 に対して、val2 で始まっているかどうか問合せる)
             初期値は、判定しない ("false")

    - #### setNullCheck

          public void setNullCheck(String flag)

      【TAG】null チェックを行うかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - nullチェックを行うかどうか [true:行う/それ以外:行わない]
      説明:

             チェックを行うように指定("true")した場合に、第一引数が null の場合は,
             条件成立して、タグのBody は実行されます。
             初期値は、行わない (true 以外)です。

    - #### setNotEquals

          public void setNotEquals(String flag)

      【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - 反転させるか [true:反転する/それ以外:通常]
      説明:

             通常の成立条件において、不成立の場合に、BODY を実行します。
             通常の処理結果を求めて、最後に、反転処理を行います。
             初期値は、通常 (true 以外)です。

    - #### setContains

          public void setContains(String flag)

      【TAG】文字列が含まれているかどうか[true/false]の判定します(初期値:false)。
      パラメータ:
        `flag` - 含む判定 [true:判定する/それ以外:しない]
      説明:

             val1.indexOf( val2 ) >= 0 の書式で判定されます。この場合、"ABCDEFG".indexOf( "CDE" )
             の場合に、条件成立します。(つまり、val1 に対して、val2 が含まれているかどうか問合せる)
             初期値は、判定しない ("false")

      変更履歴:

        3.2.0.0 (2003/05/22) 判定方法に,contains,endsWith,matches の方法を追加

    - #### setEndsWith

          public void setEndsWith(String flag)

      【TAG】指定された接尾辞で終るかどうか[true/false]を判定します(初期値:false)。
      パラメータ:
        `flag` - 接尾辞判定 [true:判定する/それ以外:しない]
      説明:

             val1.endsWith( val2 ) の書式で判定されます。この場合、"ABCDEFG".endsWith( "EFG" )
             の場合に、条件成立します。(つまり、val1 に対して、val2 で終わっているかどうか問合せる)
             初期値は、判定しない ("false")

      変更履歴:

        3.2.0.0 (2003/05/22) 判定方法に,contains,endsWith,matches の方法を追加

    - #### setMatches

          public void setMatches(String flag)

      【TAG】指定された正規表現と一致するかどうか[true/false]を判定します(初期値:false)。
      パラメータ:
        `flag` - 正規表現一致判定 [true:判定する/それ以外:しない]
      説明:

             val1.matches( val2 ) の書式で判定されます。val2 に指定された正規表現で、
             一致するかどうかを判定します。ここでの正規表現とは、
             java.util.regex.Pattern.matches(val1, val2) での判定結果と同じです。
             初期値は、判定しない ("false")

      変更履歴:

        3.2.0.0 (2003/05/22) 判定方法に,contains,endsWith,matches の方法を追加

    - #### setUseStop

          public void setUseStop(String flag)

      【TAG】BODYを処理後に停止するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - 処理後停止 [true:する/それ以外:しない]
      説明:

             処理結果などに応じて、以下の処理を停止したい場合に、使用します。
             ここでは、条件を判定後、true の場合に、BODY部を出力(処理)した後に、
             ここにセットされた値に応じて、以下のページ処理を行うかどうかを指定します。
             true を指定すると、以下の処理は、行われません。
             初期値は、停止しない ("false")

      変更履歴:

        3.8.1.2 (2005/12/19) 新規追加

    - #### setOperator

          public void setOperator(String ope)

      【TAG】比較する操作を EQ,LT,LE,GT,GE から指定します(初期値:EQ)。
      パラメータ:
        `ope` - 比較する操作 [EQ/LT/LE/GT/GE]
      関連項目:
        `setIgnoreCase( String )`, `setCompareType( String )`
      説明:

             比較方法として、EQ(==)、LT(<)、LE(<=)、GT(>)、GE(>=) があります。
             初期値は、EQ(同じかどうか)です。
             比較は、val1 に対して行われます。val1 または val2 が null の場合は、常にfalseが
             返されます。通常の A < B ならば、not( B >= A ) の関係は成立しません。
             val1 が null でない場合は、val1(5) LT vla2(8) は、true を返します。
             ignoreCase属性(大文字/小文字の区別)を指定することで、比較する文字列の
             大文字小文字を統一させることが可能です。
             なお、比較時には、compareType 属性にもご注意ください。これは、文字列比較か
             数字比較を指定します。

      変更履歴:

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

    - #### setCompareType

          public void setCompareType(String type)

      【TAG】大小比較する方法(STRING:前方比較 、NUMBER:数値比較)を指定します(初期値:STRING)。
      パラメータ:
        `type` - 判定方法 [STRING:前方比較/NUMBER(数値比較)]
      関連項目:
        `setIgnoreCase( String )`, `setOperator( String )`
      説明:

             operator 属性で大小を比較する場合、比較方法として、前方比較と数値比較を指定できます。
             STRING(前方比較)とは、お互いの文字列を前方から順に比較していきます。例えば、
             ABC と AABBCC や、123 と 112233 では、AABBCC や 112233 が小さいと判断されます。
             NUMBER(数値比較)では、123 と 112233 では、123 が小さいと判断されます。
             NUMBER は、数字に変換できる値である必要があります。
             STRING は、ignoreCase属性(大文字/小文字の区別)を指定することで、比較する文字列の
             大文字小文字を統一させることが可能です。
             初期値は、STRING(前方比較)です。

      変更履歴:

        3.8.1.3B (2006/01/30) 新規追加
        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`
      戻り値:
        このクラスの文字列表現
      変更履歴:

        3.2.0.0 (2003/05/22) 判定方法に,contains,endsWith,matches の方法を追加

      このメソッドは、nullを返しません

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