パッケージ org.opengion.hayabusa.taglib

# クラス RegistryQueryTag

java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.RegistryQueryTag

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

public class RegistryQueryTag extends CommonTagSupport
指定の Windowsレジストリにアクセスするためのタグです(特殊な環境設定が必要です)。 検索した結果は、DBTableModel にセットされるため、 JDBCQuery と同様に、viewタグで表示させることが可能です。 注意１： 通常であれば、以下の２つのルートパス以下のレジストリにアクセスできます。 HKEY_CURRENT_USER/Software/JavaSoft/Prefs HKEY_LOCAL_MACHINE/Software/JavaSoft/Prefs 注意２： ルートパスを強制的に変更する為、java.util.prefs.WindowsPreferenceクラスを 直接書き換えた、ogPreferences.jar を用意しています。 これを、tomcat/endorsed フォルダにコピーして使います。 その場合は、 HKEY_CURRENT_USER/Software/Muratec HKEY_LOCAL_MACHINE/Software/Muratec 以下の２つのルートパス以下のレジストリにアクセスできます。

関連項目:
  - 直列化された形式
変更履歴:
  3.1.0.0 (2003/03/20) Windowsレジストリにアクセスできる、RegistryQueryTag.java を新規に作成。
機能分類
  その他入力
形式ｻﾝﾌﾟﾙ:
  ●形式：<og:regQuery baseKey="･･･" ･･･ /> ●body：なし ●Tag定義： <og:regQuery baseKey ○【TAG】検索ベースキーを設定します(HKEY_CURRENT_USER/Software/XXXX の XXXX を指定します)(必須)。 hkeyType 【TAG】HKEY_CURRENT_USER(="user") を読むか、HKEY_LOCAL_MACHINE(="system") を読むかを指定します(初期値:user)。 key 【TAG】検索キーを設定します value 【TAG】検索バリューを設定します maxRowCount 【TAG】レジストリの最大検索件数をセットします(初期値:0[無制限]) orderBy 【TAG】検索した結果を表示する表示順をファイル属性名で指定します maxLevel 【TAG】検索時の最大展開レベル(0は無制限)を指定します(初期値:1) like 【TAG】キーおよびバリューについて,like 検索を行うかどうか[true/false]を指定します(初期値:false) tableId 【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します command 【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW) displayMsg 【TAG】検索結果を画面上に表示するメッセージIDを指定します(初期値:VIEW_DISPLAY_MSG[=]) notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした]) overflowMsg 【TAG】オーバーフロー時に画面上に表示するメッセージIDを指定します(初期値:MSG0007) scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session) mainTrans 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) /> ●使用例 <og:regQuery debug="false" command = "NEW" NEW,RENEW が使用できます。 baseKey = "/" 検索時のベースとなるレジストリキー名 key = "driver" 検索したいレジストリキー名(初期値は全件) value = "Ne" 検索したいレジストリ値(初期値は全件) maxRowCount = "0" 最大検索件数(0で無制限) maxLevel = "0" 最大検索階層レベル(0で無制限) like = "true" true で曖昧検索/false は一致検索 /> like は、key / value を設定したときのみ有効です。また、key / value を両方同時に設定した場合は、 like 属性は両方に同時に適用されます。
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `CMD_NEW`
  command 引数に渡す事の出来る コマンド 新規 "NEW"
  `static final String`
  `CMD_RENEW`
  command 引数に渡す事の出来る コマンド 再検索 "RENEW"

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

  `BR, BUFFER_MIDDLE, CR`

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

  `bodyContent`

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

  `id, pageContext`

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

  `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

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

  `EVAL_BODY_AGAIN`

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

  `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

- ## コンストラクタの概要

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

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int`
  `doEndTag()`
  Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
  `protected String`
  `getTagName()`
  タグの名称を、返します。
  `protected void`
  `release2()`
  タグリブオブジェクトをリリースします。
  `void`
  `setBaseKey(String bkey)`
  【TAG】検索ベースキーを設定します(HKEY_CURRENT_USER/Software/XXX の XXX をベースとします)。
  `void`
  `setCommand(String cmd)`
  【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。
  `void`
  `setDisplayMsg(String id)`
  【TAG】検索結果を画面上に表示するメッセージIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
  `void`
  `setHkeyType(String type)`
  【TAG】レジストリの読み込むルートを[user/system]で指定します(初期値:user)。
  `void`
  `setKey(String ky)`
  【TAG】検索キーを設定します。
  `void`
  `setLike(String lik)`
  【TAG】キーおよびバリューについて,like 検索を行うかどうか[true/false]を指定します(初期値:false)。
  `void`
  `setMainTrans(String flag)`
  【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
  `void`
  `setMaxLevel(String lvl)`
  【TAG】検索時の最大展開レベル(0は無制限)を指定します(初期値:1)。
  `void`
  `setMaxRowCount(String count)`
  【TAG】レジストリの最大検索件数をセットします(初期値:0[無制限])。
  `void`
  `setNotfoundMsg(String id)`
  【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
  `void`
  `setOrderBy(String ordr)`
  【TAG】検索した結果を表示する表示順をファイル属性名で指定します。
  `void`
  `setOverflowMsg(String id)`
  【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。
  `void`
  `setTableId(String id)`
  【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
  `void`
  `setValue(String val)`
  【TAG】検索バリューを設定します。
  `String`
  `toString()`
  このオブジェクトの文字列表現を返します。

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

  `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, 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`

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

  `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

  ### クラスから継承されたメソッド jakarta.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`

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

  `getParent, setPageContext, setParent`

- ## フィールド詳細

  - ### CMD_NEW

    public static final String CMD_NEW
    command 引数に渡す事の出来る コマンド 新規 "NEW"
    関連項目:
      - 定数フィールド値

  - ### CMD_RENEW

    public static final String CMD_RENEW
    command 引数に渡す事の出来る コマンド 再検索 "RENEW"
    関連項目:
      - 定数フィールド値

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

  - ### RegistryQueryTag

    public RegistryQueryTag()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### doEndTag

    public int doEndTag()
    Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    定義:
      `doEndTag` インタフェース内 `Tag`
    オーバーライド:
      `doEndTag` クラス内 `CommonTagSupport`
    戻り値:
      後続処理の指示
    変更履歴:
      3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。, 4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage ⇒ getResource().getLabel ), 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。

  - ### 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()で呼ぶ。, 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 5.6.8.2 (2013/09/20) hkeyType 追加

  - ### setTableId

    public void setTableId(String id)
    【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。
    パラメータ:
      `id` - テーブルID (sessionに登録する時のID)
    説明:
      検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に 渡す場合に、通常は、session を利用します。その場合の登録キーです。 query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、 この tableId 属性を利用して、メモリ空間を分けます。 (初期値:HybsSystem#TBL_MDL_KEY[=])。

  - ### setOrderBy

    public void setOrderBy(String ordr)
    【TAG】検索した結果を表示する表示順をファイル属性名で指定します。
    パラメータ:
      `ordr` - ソートキー
    説明:
      現仕様では、複数のキーを指定することは出来ません。

  - ### setCommand

    public void setCommand(String cmd)
    【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。
    パラメータ:
      `cmd` - コマンド (public static final 宣言されている文字列)
    関連項目:
      - コマンド定数
    説明:
      コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 何も設定されない、または、null の場合は、"NEW" が初期値にセットされます。

  - ### setBaseKey

    public void setBaseKey(String bkey)
    【TAG】検索ベースキーを設定します(HKEY_CURRENT_USER/Software/XXX の XXX をベースとします)。
    パラメータ:
      `bkey` - 検索ベースキー
    説明:
      レジストリの検索で、HKEY_CURRENT_USER か、HKEY_LOCAL_MACHINE の区別を、hkeyType 属性で付ける事が できるようにしました。昔は、HKEY_CURRENT_USER/Software/ 以下の検索ができていましたが、 今現在は、できなくなっているようです。（または、使い方が間違っているか） そこで、標準(/JavaSoft/Prefs)、/Muratec、/Microsoft だけ、検索できるように、 XXXXPreferencesFactory を作成しました。 詳細は、opengionV6/src/jdk170uXX_WindowsPreference を参照願います。 これにより、従来通りの方法で（制限はかかりますが）レジストリを検索できます。 ベースキー に指定できるのは、"/Muratec" , "/Microsoft" で始まるキーだけです。 それに続く "/" で区切った階層構造も表現可能です。 標準(/JavaSoft/Prefs) は、何も指定しないことで、標準であることを示します。

  - ### setKey

    public void setKey(String ky)
    【TAG】検索キーを設定します。
    パラメータ:
      `ky` - 検索キー
    説明:
      検索キーを設定します。

  - ### setValue

    public void setValue(String val)
    【TAG】検索バリューを設定します。
    パラメータ:
      `val` - 検索バリュー
    説明:
      検索バリューを設定します。

  - ### setMaxRowCount

    public void setMaxRowCount(String count)
    【TAG】レジストリの最大検索件数をセットします(初期値:0[無制限])。
    パラメータ:
      `count` - 最大件数
    説明:
      DBTableModelのデータとして登録する最大件数をこの値に設定します。 サーバーのメモリ資源と応答時間の確保の為です。 初期値は、0 は、無制限です。

  - ### setDisplayMsg

    public void setDisplayMsg(String id)
    【TAG】検索結果を画面上に表示するメッセージIDを指定します (初期値:VIEW_DISPLAY_MSG[=])。
    パラメータ:
      `id` - 処理結果表示メッセージID
    説明:
      ここでは、検索結果の件数や登録された件数をまず出力し、 その次に、ここで指定したメッセージをリソースから取得して 表示します。 件数を表示させる場合は、displayMsg = "MSG0033"[　件検索しました] をセットしてください。 表示させたくない場合は, displayMsg = "" をセットしてください。 (初期値:システム定数のVIEW_DISPLAY_MSG[=])。

  - ### setNotfoundMsg

    public void setNotfoundMsg(String id)
    【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。
    パラメータ:
      `id` - ゼロ件時表示メッセージID
    説明:
      ここでは、検索結果がゼロ件の場合のみ、特別なメッセージを表示させます。 従来は、displayMsg と兼用で、『0　件検索しました』という表示でしたが、 displayMsg の初期表示は、OFF になりましたので、ゼロ件の場合のみ別に表示させます。 表示させたくない場合は, notfoundMsg = "" をセットしてください。 初期値は、MSG0077[対象データはありませんでした]です。

  - ### setOverflowMsg

    public void setOverflowMsg(String id)
    【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。
    パラメータ:
      `id` - 最大検索数オーバー時メッセージID
    説明:
      表示させたくない場合は, overflowMsg = "" をセットしてください。

  - ### setMaxLevel

    public void setMaxLevel(String lvl)
    【TAG】検索時の最大展開レベル(0は無制限)を指定します(初期値:1)。
    パラメータ:
      `lvl` - 検索時の最大展開レベル
    説明:
      ０を指定すると、無制限に階層を展開します。 初期値は、１レベルです。

  - ### setLike

    public void setLike(String lik)
    【TAG】キーおよびバリューについて,like 検索を行うかどうか[true/false]を指定します(初期値:false)。
    パラメータ:
      `lik` - 曖昧検索を行うかどうか [true:行う/false:行わない]
    説明:
      like検索とは、キーの一部の文字を含む場合にマッチしたとして、値を取り出します。 ここでの設定は、キーもバリューも同時に適用されます。また、大文字小文字の区別も行いません。

  - ### setHkeyType

    public void setHkeyType(String type)
    【TAG】レジストリの読み込むルートを[user/system]で指定します(初期値:user)。
    パラメータ:
      `type` - 読み込むルート [user/system]
    変更履歴:
      5.6.8.2 (2013/09/20) 新規追加
    説明:
      HKEY_CURRENT_USER/Software/XXXX を読む場合は、"user" を、HKEY_LOCAL_MACHINE/Software/XXXX を読む場合は、"system" を指定します。それ以外の指定は、エラーにしています。 ここでの設定は、大文字小文字の区別は行いません。 初期値は、"user"(HKEY_CURRENT_USER) です。

  - ### getTagName

    protected String getTagName()
    タグの名称を、返します。 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
    オーバーライド:
      `getTagName` クラス内 `CommonTagSupport`
    戻り値:
      タグの名称
    関連項目:
      - `CommonTagSupport.getDocumentLink()`
    変更履歴:
      4.0.0.0 (2005/01/31) 新規追加
    このﾒｿｯﾄﾞは、nullを返しません

  - ### setMainTrans

    public void setMainTrans(String flag)
    【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
    パラメータ:
      `flag` - メイントランザクションかどうか [true:メイン/false:その他]
    変更履歴:
      5.1.6.0 (2010/05/01) 新規作成
    説明:
      この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。

  - ### toString

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