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

## クラス GUIInfo

- java.lang.Object
- - org.opengion.hayabusa.resource.GUIInfo

- すべての実装されたインタフェース:
    `Comparable<GUIInfo>`

      public final class GUIInfo
      extends Object
      implements Comparable<GUIInfo>

  画面情報の取得の為のインターフェースです。 {@GUI.XXXX} で、XXXX 部に、GUIInfo オブジェクトで定義されている 属性情報を取り出すことが出来ます。 ・KEY 画面ID ・ADDRESS 実行アドレス ・REALADDRESS 実行実アドレス ・SEQUENCE 表示順 ・GROUPS メニュグループ ・CLASSIFY メニュ分類 ・LEVEL メニュ階層番号 ・LABEL 画面名称 ・NAME 画面名称(=SNAME) ・SNAME 画面名称(short) ・LNAME 画面名称(long) ・ROLES ロールズ ・MODE アクセスモード列(mr,mw,-r,-w の羅列) ・TARGET ターゲット ・PARAM 設定値(パラメータ) ・KBLINK リンク区分 ・DESCRIPTION 概要説明 ・IMAGEKEY イメージキー ・DYUPD 更新日時 ・ISREAD 読取り許可[true/false] ・ISWRITE 書込み許可[true/false]
  機能分類
    リソース管理
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `GUIInfo​(GUIData guiData, LabelData labelData, byte bitMode)` | コンストラクター 引数の bitMode は、UserInfo と加味済み

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `void` | `addAccessCount()` | この画面へのアクセス回数を、＋１します。
    `void` | `addErrorCount()` | エラー発生時の件数を＋１します。
    `void` | `addReadCount​(int cnt, long time, String query)` | データベース検索した数と、掛かった時間(ms)を、セットします。
    `void` | `addWriteCount​(int cnt, long time, String query)` | データベース登録した数と、掛かった時間(ms)を、セットします。
    `int` | `compareTo​(GUIInfo other)` | 自然比較メソッド インタフェース Comparable の 実装に関連して、再定義しています。
    `boolean` | `equals​(Object object)` | このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    `String` | `getAddress()` | 実行アドレス情報を取得します。
    `String` | `getAttribute​(String key)` | GUIInfoの属性文字列を取得します。
    `byte` | `getBitMode()` | 指定のユーザーロールに対するビット条件を取得します。
    `String` | `getClassify()` | 画面情報 メニュ分類のオリジナルキー を取得します。
    `String` | `getDescription()` | 概要説明属性を取得します。
    `String` | `getDyupd()` | 更新日時を取得します。
    `HybsEntry[]` | `getEntrys()` | GUIInfoの属性文字列の内部情報を返します。
    `String` | `getGroups()` | 画面情報 メニュグループのオリジナルキー を取得します。
    `GUIAccessCount` | `getGUIAccessCount()` | この画面のアクセス統計オブジェクトを取得します。
    `String` | `getImageKey()` | イメージアイコンのキーを返します。
    `String` | `getKblink()` | リンク区分属性を取得します。
    `String` | `getKey()` | 画面情報 画面ID を取得します。
    `String` | `getLabel()` | 画面情報 画面名称 を取得します。
    `int` | `getLevel()` | 画面の階層番号(レベル)を取得します。
    `String` | `getLongName()` | 画面情報 画面名称(long) を取得します。
    `String` | `getMode()` | アクセスモードを取得します。
    `String` | `getName()` | 画面情報 画面名称(short) を取得します。
    `String[]` | `getNextGuiArray()` | この画面の次にアクセスされた画面IDの文字列配列で取得します。
    `String` | `getNextGuiKeys()` | この画面の次にアクセスされた画面IDのCSV文字列を取得します。
    `String` | `getParam()` | 画面を表示する時のパラメータ属性を取得します。
    `String` | `getRealAddress()` | トップからの実行アドレス情報を取得します。
    `String` | `getRealAddress​(String page)` | トップからの実行アドレス情報を取得します。
    `RoleMode` | `getRoleMode()` | ロールモード情報を取得します。
    `String` | `getRoles()` | 画面情報 ロール を取得します。
    `int` | `getSequence()` | 画面の表示順を取得します。
    `String` | `getTarget()` | 画面を表示する時のターゲット属性を取得します。
    `int` | `hashCode()` | オブジェクトのハッシュコード値を返します。
    `boolean` | `isGroupIn​(String group)` | 指定の文字列がグループに含まれているかどうかを判定します。
    `boolean` | `isPulldown()` | ボタンメニューにプルダウンを指定するのかをチェックします。
    `boolean` | `isRead()` | リードアクセス(読取り許可)の 可否を チェックします。
    `boolean` | `isWrite()` | ライトアクセス(書込み許可)の 可否を チェックします。
    `void` | `setLevelUp()` | 画面の階層番号(レベル)をアップします。
    `void` | `setNextGuiKey​(String guiKey)` | この画面の次にアクセスされた画面IDをセットします。
    `String` | `toString()` | オブジェクトの識別子として，詳細な画面情報を返します。

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

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

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

    - #### GUIInfo

          public GUIInfo​(GUIData guiData,
                         LabelData labelData,
                         byte bitMode)

      コンストラクター 引数の bitMode は、UserInfo と加味済み
      パラメータ:
        `guiData` - 画面データオブジェクトID
        `labelData` - ラベルデータオブジェクト
        `bitMode` - ビットモード配列 "--:000","-r:001","-w:010","mr:101","mw:110" に対応した数字(0,1,2,5,6)
      変更履歴:
        4.3.0.0 (2008/07/04) ファイル入出力制御追加, 4.3.3.0 (2008/10/01) 強制プルダウンモード追加

  - ### メソッドの詳細

    - #### getKey

          public String getKey()

      画面情報 画面ID を取得します。
      戻り値:
        画面ID

    - #### getAddress

          public String getAddress()

      実行アドレス情報を取得します。
      戻り値:
        実行アドレス

    - #### getRealAddress

          public String getRealAddress()

      トップからの実行アドレス情報を取得します。 コンテキスト名とリンク区分属性を利用して、サーバートップからのアドレスを 返します。ただし、GUIリソースに、http://～ または、.～ から始まるアドレスは そのまま、なにも変換せずに返します。 実アドレスには、param属性の情報を付加します。param属性は、接続文字を用いずに そのまま連結されますので、/index.jsp?AAA=XX&BBB=YY という感じで "/" から はじめます。 http://AAAA ⇒ http://AAAA ../../AAAA/ ⇒ ../../AAAA/ AAAA ⇒ /CONTEXT_NAME/KBLINK/AAAA/ param なし AAAA ⇒ /CONTEXT_NAME/KBLINK/AAAA/index.jsp?AAA=XX&BBB=YY param あり
      戻り値:
        実行実アドレス
      変更履歴:
        3.5.5.0 (2004/03/12) 新規追加, 4.0.0.0 (2005/01/31) param属性追加

    - #### getRealAddress

          public String getRealAddress​(String page)

      トップからの実行アドレス情報を取得します。 コンテキスト名とリンク区分属性を利用して、サーバートップからのアドレスを 返します。ただし、GUIリソースに、http://～ または、.～ から始まるアドレスは そのまま、なにも変換せずに返します。 実アドレスには、param属性の情報を付加します。param属性は、接続文字を用いずに そのまま連結されますので、/index.jsp?AAA=XX&BBB=YY という感じで "/" から はじめます。 また、アドレスの最後がスラッシュ(/)で終了している場合は、page属性を追加します。 http://AAAA ⇒ http://AAAA ../../AAAA/ ⇒ ../../AAAA/ AAAA ⇒ /CONTEXT_NAME/KBLINK/AAAA/ param なし AAAA ⇒ /CONTEXT_NAME/KBLINK/AAAA/index.jsp?AAA=XX&BBB=YY param あり
      パラメータ:
        `page` - 実行ページ(index.jsp など)
      戻り値:
        実行実アドレス
      変更履歴:
        4.0.0.0 (2005/01/31) 新規追加(param属性追加)

    - #### getSequence

          public int getSequence()

      画面の表示順を取得します。
      戻り値:
        画面の表示順

    - #### getLevel

          public int getLevel()

      画面の階層番号(レベル)を取得します。 画面階層は、 　0:予約階層(将来的にタブブラウザ対応時に使用 　1:トップ階層(通常のメニューの分類として表示されます。) 　2:選択階層(通常の折りたたみメニューの画面選択時に使用されます。) 　3以下:下位階層(通常の選択メニューとして、１段下げて表示されます。) です。 なお、これらの意味は、実際にメニューを作成/表示するクラスに依存します。
      戻り値:
        画面の表示順

    - #### setLevelUp

          public void setLevelUp()

      画面の階層番号(レベル)をアップします。 これは、レベルが３の場合(階層時の隠しメニュー)をレベル２に することで、常に見えているメニューに格上げします。 具体的には、設定値が隠しメニューの場合に、アクセスするとレベル２へ格上げ することで、個人単位で、過去の履歴に応じたメニュー配置が可能になります。

    - #### getGroups

          public String getGroups()

      画面情報 メニュグループのオリジナルキー を取得します。 メニュグループは、CSV形式で複数登録できます。
      戻り値:
        メニュ分類のキー

    - #### isGroupIn

          public boolean isGroupIn​(String group)

      指定の文字列がグループに含まれているかどうかを判定します。 メニュグループは、CSV形式で複数登録できますので、そのうちの どれかに含まれていれば、true を返します。 このメニューそのものに、グループが指定されていない場合は、 デフォルトグループという扱いで、true を返します。 引数が、null または、ゼロ文字列の場合も、同様に、true を返します。
      パラメータ:
        `group` - 判定するグループ
      戻り値:
        グループに含まれているかどうか

    - #### getClassify

          public String getClassify()

      画面情報 メニュ分類のオリジナルキー を取得します。
      戻り値:
        メニュ分類のキー

    - #### getLabel

          public String getLabel()

      画面情報 画面名称 を取得します。 これは、加工前のラベルリソースに登録されている値です。
      戻り値:
        画面名称

    - #### getName

          public String getName()

      画面情報 画面名称(short) を取得します。 この名称は、チップ表示付きの文字列を返します。
      戻り値:
        画面名称(short)

    - #### getLongName

          public String getLongName()

      画面情報 画面名称(long) を取得します。 この名称は、チップ表示付きの文字列を返します。
      戻り値:
        画面名称(long)

    - #### getRoles

          public String getRoles()

      画面情報 ロール を取得します。 ロールは、AAA|BBB|CCC と『|』の区切り文字で複数登録できます。 ユーザーのロール(こちらも、XXX|YYY|AAAと複数登録可能)とマッチする ロールがあれば、その画面のアクセス許可があります。 読み書きと、メニュー表示は、アクセスモードで指定します。
      戻り値:
        ロール

    - #### getMode

          public String getMode()

      アクセスモードを取得します。 r,w,_ を各ロール毎に設定します。 mr:メニューよりアクセスできる読取専用画面です。登録ボタンは表示されません。 mw:メニューよりアクセスできる登録編集画面です。表示もします。 -r:メニューに現れませんが、アクセスすることは可能です。読取専用。 -w:メニューに現れませんが、アクセスすることは可能です。読み書き出来ます。 この２文字ずつのセットが、各ロールに対応付けられたアクセス制御になります。 ロールが、AAA|BBB|CCC|DDD で、モードが mw|mr|-r|-w であれば、 AAA は、mw , BBB は、mr ，CCC は、-r ，DDD は -w と設定されたことになります。 特別に、２文字のみ登録された場合は、全ロールが同一モードに設定 されたとみなします。
      戻り値:
        ロール毎のアクセスモード列(mr,mw,-r,-w の羅列)

    - #### getTarget

          public String getTarget()

      画面を表示する時のターゲット属性を取得します。
      戻り値:
        ターゲット

    - #### getParam

          public String getParam()

      画面を表示する時のパラメータ属性を取得します。
      戻り値:
        パラメータ

    - #### getKblink

          public String getKblink()

      リンク区分属性を取得します。
      戻り値:
        リンク区分
      変更履歴:
        3.4.0.0 (2003/09/01) リンク区分(KBLINK)属性を追加。

    - #### getDescription

          public String getDescription()

      概要説明属性を取得します。 概要説明が設定されていない場合は、longName を返します。
      戻り値:
        概要説明
      変更履歴:
        3.5.6.5 (2004/08/09) 概要説明(DESCRIPTION)属性を追加。

    - #### getDyupd

          public String getDyupd()

      更新日時を取得します。
      戻り値:
        更新日時
      変更履歴:
        5.3.3.0 (2011/03/01) 新規作成

    - #### getImageKey

          public String getImageKey()

      イメージアイコンのキーを返します。 画面にアイコンを追加する場合、jsp/menuImage フォルダに、画面ID と同じ名称の 画像ファイルを置く必要があります。 ※ 6.3.8.4 (2015/10/09) 従来は、PARAM 属性に、IMAGE_KEY=XXXX と指定していましたが、 KBLINK(リンク区分) を使用するように変更しました。
      戻り値:
        イメージアイコンのキー
      変更履歴:
        5.5.2.5 (2012/05/21) 新規追加, 6.3.8.4 (2015/10/09) KBLINK(リンク区分)を画面のイメージファイルに割り当てます。

    - #### getRoleMode

          public RoleMode getRoleMode()

      ロールモード情報を取得します。
      戻り値:
        ロールモード
      変更履歴:
        4.3.0.0 (2008/07/04) 新規追加

    - #### isRead

          public boolean isRead()

      リードアクセス(読取り許可)の 可否を チェックします。 アクセスチェックは、画面のロールをユーザーの それと比較して条件が含まれているかどうかを確認します。 条件が null (または０ストリング)の場合は, true となります。 条件の判断は、AND 条件です。 さらに、その他の条件部分を判断して、OR 条件で先の結果と突き合わせます。 ユーザーのロールが、 "root" の場合は,rw 属性のみのチェックで判断します。
      戻り値:
        アクセスOK：true アクセス拒否：false
      変更履歴:
        3.5.4.0 (2003/11/25) 引数にロールズを渡します。

    - #### isWrite

          public boolean isWrite()

      ライトアクセス(書込み許可)の 可否を チェックします。 アクセスチェックは、画面のロールをユーザーの それと比較して条件が含まれているかどうかを確認します。 条件が null (または０ストリング)の場合は, true となります。 条件の判断は、AND 条件です。 さらに、その他の条件部分を判断して、OR 条件で先の結果と突き合わせます。 ユーザーのロールが、 "root" の場合は,rw 属性のみのチェックで判断します。
      戻り値:
        アクセスOK：true アクセス拒否：false
      変更履歴:
        3.5.4.0 (2003/11/25) 引数にロールズを渡します。

    - #### isPulldown

          public boolean isPulldown()

      ボタンメニューにプルダウンを指定するのかをチェックします。
      戻り値:
        プルダウン化の場合true
      変更履歴:
        4.3.3.0 (2008/10/01) 新規作成

    - #### getBitMode

          public byte getBitMode()

      指定のユーザーロールに対するビット条件を取得します。 この bitMode は、すでにユーザー単位に作成された値です。
      戻り値:
        アクセスビット
      変更履歴:
        4.3.0.0 (2008/07/04) ロールモードマルチ対応

    - #### getAttribute

          public String getAttribute​(String key)

      GUIInfoの属性文字列を取得します。 ・KEY 画面ID ・ADDRESS 実行アドレス ・REALADDRESS 実行実アドレス ・SEQUENCE 表示順 ・GROUPS メニュグループ ・CLASSIFY メニュ分類 ・LEVEL メニュ階層番号 ・LABEL 画面名称 ・NAME 画面名称(=SNAME) ・SNAME 画面名称(short) ・LNAME 画面名称(long) ・ROLES ロール ・MODE アクセスモード列(mr,mw,-r,-w の羅列) ・TARGET ターゲット ・PARAM 設定値(パラメータ) ・KBLINK リンク区分 ・DESCRIPTION 概要説明 ・IMAGEKEY イメージキー ・DYUPD 更新日時 ・ISREAD 読取り許可[true/false] ・ISWRITE 書込み許可[true/false]
      パラメータ:
        `key` - キー
      戻り値:
        属性文字列の値
      変更履歴:
        3.4.0.0 (2003/09/01) リンク区分(KBLINK)属性を追加。, 3.5.5.0 (2004/03/12) 実行実アドレス(REALADDRESS)属性を追加。, 3.5.6.5 (2004/08/09) 概要説明(DESCRIPTION)属性を追加。, 4.0.0.0 (2005/11/30) ISREAD,ISWRITE 属性を追加。, 5.3.3.0 (2011/03/01) 更新日時を追加, 5.5.2.5 (2012/05/21) IMAGEKEY 追加, 5.6.4.3 (2013/05/25) FAQ追加, 6.3.8.4 (2015/10/09) GE80(FAQﾃｰﾌﾞﾙ)の取得は廃止。(helpタグで行う), 6.4.1.1 (2016/01/16) PMD refactoring. Position literals first in String comparisons for EqualsIgnoreCase.

    - #### getEntrys

          public HybsEntry[] getEntrys()

      GUIInfoの属性文字列の内部情報を返します。 この内部情報の中には、getAttribute( String ) で取得できる管理情報です。
      戻り値:
        属性文字列のHybsEntryオブジェクト配列
      変更履歴:
        4.0.0.0 (2004/12/31) 新規作成, 5.3.3.0 (2011/03/01) 更新日時を追加, 5.5.2.5 (2012/05/21) IMAGEKEY 追加
      このメソッドは、nullを返しません

    - #### addReadCount

          public void addReadCount​(int cnt,
                                   long time,
                                   String query)

      データベース検索した数と、掛かった時間(ms)を、セットします。 これは、セキュリティ上の監視フラグで、不必要に、大量の データが検索された場合や、不正なデータアクセスがあるかどうかを 監視するための統計情報を取得します。 画面オブジェクトは、各ユーザー毎に作成されているため、個々の ユーザー毎/画面毎のアクセス状況を見ることが可能になります。
      パラメータ:
        `cnt` - データベース検索した数
        `time` - データベース検索した数
        `query` - そのときのSQL文
      変更履歴:
        4.0.0.0 (2005/01/31) 新規追加

    - #### addWriteCount

          public void addWriteCount​(int cnt,
                                    long time,
                                    String query)

      データベース登録した数と、掛かった時間(ms)を、セットします。 これは、セキュリティ上の監視フラグで、不必要に、大量の データが登録された場合や、不正なデータアクセスがあるかどうかを 監視するための統計情報を取得します。 画面オブジェクトは、各ユーザー毎に作成されているため、個々の ユーザー毎/画面毎のアクセス状況を見ることが可能になります。
      パラメータ:
        `cnt` - データベース登録した数
        `time` - データベース検索した数
        `query` - そのときのSQL文
      変更履歴:
        4.0.0.0 (2005/01/31) 新規追加

    - #### addAccessCount

          public void addAccessCount()

      この画面へのアクセス回数を、＋１します。 アクセス回数は、このメソッドの呼び出し回数のことです。 現状では、result.jsp 画面でセットすることで、アクセス数を 数えることにします。
      変更履歴:
        4.0.0.0 (2005/01/31) 新規追加

    - #### addErrorCount

          public void addErrorCount()

      エラー発生時の件数を＋１します。 これは、エラー発生時に呼び出すことで、エラー件数をチェックすることが 可能になります。 一般にエラーには、予期するエラー(必須入力登録漏れ等)と、予期しないエラー がありますが、ここでは、Java の Exceptionが発生する予期しないエラーの 件数をカウントします。
      変更履歴:
        4.0.0.0 (2005/01/31) 新規追加

    - #### getGUIAccessCount

          public GUIAccessCount getGUIAccessCount()

      この画面のアクセス統計オブジェクトを取得します。
      戻り値:
        アクセス統計オブジェクト
      変更履歴:
        4.0.0.0 (2005/01/31) 新規追加

    - #### setNextGuiKey

          public void setNextGuiKey​(String guiKey)

      この画面の次にアクセスされた画面IDをセットします。 これは、画面アクセスの履歴(順番)を管理する機能を提供します。 自分自身の次にアクセスされる画面IDの集合を管理することで QUERY画面上部のショートカットリンクに、次に使用する画面の リンクを用意することが可能になります。
      パラメータ:
        `guiKey` - この画面の次にアクセスされた画面ID
      変更履歴:
        5.2.3.0 (2010/12/01) アクセス履歴管理, 6.8.4.2 (2017/12/25) nextGui を、後入れ先出しに変更します。

    - #### getNextGuiKeys

          public String getNextGuiKeys()

      この画面の次にアクセスされた画面IDのCSV文字列を取得します。 これは、画面アクセスの履歴(順番)をCSV形式で取り出します。 アクセス履歴を外部記憶媒体に出力する場合に使用します。
      戻り値:
        この画面の次にアクセスされた画面IDのCSV文字列
      変更履歴:
        5.2.3.0 (2010/12/01) アクセス履歴管理, 6.4.3.4 (2016/03/11) CSV形式の文字連結を、stream 経由で行います。
      このメソッドは、nullを返しません

    - #### getNextGuiArray

          public String[] getNextGuiArray()

      この画面の次にアクセスされた画面IDの文字列配列で取得します。 これは、画面アクセスの履歴(順番)を文字列配列で取り出します。
      戻り値:
        この画面の次にアクセスされた画面IDの文字列配列
      変更履歴:
        5.2.3.0 (2010/12/01) アクセス履歴管理

    - #### compareTo

          public int compareTo​(GUIInfo other)

      自然比較メソッド インタフェース Comparable の 実装に関連して、再定義しています。 登録されたシーケンス(画面の表示順)で比較します。 equals メソッドでは、キーの同一性のみに着目して判定しています。 この比較では、(運用上同一キーは発生しませんが)たとえ同一キーが存在した としても、その比較値が同じになることを保証していません。
      定義:
        `compareTo` インタフェース内 `Comparable<GUIInfo>`
      パラメータ:
        `other` - 比較対象のObject
      戻り値:
        このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
      例外:
        `ClassCastException` - 引数が GUIInfo ではない場合
        `IllegalArgumentException` - 引数が null の場合

    - #### equals

          public boolean equals​(Object object)

      このオブジェクトと他のオブジェクトが等しいかどうかを示します。 画面は、画面IDが等しければ、言語や表示順に関係なく同一とみなされます。 GUIInfo は、ユーザー個別に扱われ、そのグループには、key は唯一で、かつ 同一言語内で扱われるオブジェクトの為、同一とみなします。
      オーバーライド:
        `equals` クラス内 `Object`
      パラメータ:
        `object` - 比較対象の参照オブジェクト
      戻り値:
        引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false

    - #### hashCode

          public int hashCode()

      オブジェクトのハッシュコード値を返します。 このメソッドは、java.util.Hashtable によって提供されるような ハッシュテーブルで使用するために用意されています。 equals( Object ) メソッドをオーバーライトした場合は、hashCode() メソッドも 必ず 記述する必要があります。 この実装では、getKey().hashCode() と同値を返します。
      オーバーライド:
        `hashCode` クラス内 `Object`
      戻り値:
        このオブジェクトのハッシュコード値

    - #### toString

          public String toString()

      オブジェクトの識別子として，詳細な画面情報を返します。
      オーバーライド:
        `toString` クラス内 `Object`
      戻り値:
        詳細な画面情報
      変更履歴:
        3.4.0.0 (2003/09/01) リンク区分(KBLINK)属性を追加。, 3.5.5.0 (2004/03/12) 実行アドレス(ADDRESS)属性を追加。, 5.3.3.0 (2011/03/01) 更新日時を追加, 5.5.2.5 (2012/05/21) IMAGEKEY 追加
      このメソッドは、nullを返しません