org.opengion.hayabusa.resource

## クラス RoleMode

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

-     public final class RoleMode
      extends Object

  ロールモードは、画面オブジェクトやカラムオブジェクトのロール-モード制御の情報を 管理するクラスです。 ROLES 情報は、AAA|BBB|CCC と 『|』で区切られた複数のロールを持っています。 通常、ユーザーロールは画面やカラムの各オブジェクトに対してロール制御可能です。 ログインユーザーは、自分自身のロールを、画面やカラムが持っているかを判定します。 画面に関しては、従来のデフォルトアクセスがなくなり、ロールを登録する場合は、 必ず ユーザーロールとの比較が行われます。画面ロールを登録しない場合は、アクセス 可能と判断されます。つまり、画面の場合は、なにも設定しなければ、アクセス可能と 判断されます。 カラムロールも同様に、何も設定しなければフルアクセスできます。通常、ほとんどの ケースでカラムロールが使われることはありません。 RWMODE 情報は、各ロールに対して、３つの項目で表しています。 １："-" メニュー非表示 "m" メニュー表示 "p" メニュー表示(強制プルダウン表示) ２："-" アクセス拒否 "r" 読取許可 "w" 読取、書込許可 ３："-" 未対応 "d" ファイル出力 "u" ファイル入力 "f" ファイル入出力 "e" 画面編集可 互換性の関係より、"" は、"f" "e" と同等とします。 この３項目を順次つないで、"--","-r","-w","mr","mw" などの設定を行います。 モードが設定されている場合は、共通モードとして、すべてのロールに同じモードを 割り当てます。個別に割り当てる場合は、ROLES 情報の後ろに () 付きで追記します。 例えば、AAA|BBB(-r)|CCC とすれば、BBB ロールの場合は、読取専用になります。 ロールをぶつける場合は、AND 演算になります。 過去(Ver3)のモードとの互換性をとる場合、"rw" は "mw" へ、"r-" は"mr" へ変換 してください。
  変更履歴:

    4.0.0 (2004/01/31) 新規作成
    4.3.3.0 (2008/10/01) pモード追加

  機能階層
    リソース管理
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static byte` | `D_MODE` MODE 定義 ( --d )
    `static String` | `DEFAULT_MODE`
    `static byte` | `E_MODE` MODE 定義 ( --f )
    `static byte` | `F_MODE` MODE 定義 ( --f )
    `static byte` | `FULL_MODE` MODE 定義 ( mwf )
    `static byte` | `M_MODE` MODE 定義 ( m-- )
    `static byte` | `P_MODE` MODE 定義 ( p-- )
    `static byte` | `R_MODE` MODE 定義 ( -r- )
    `static byte` | `U_MODE` MODE 定義 ( --u )
    `static byte` | `W_MODE` MODE 定義 ( -w- )

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `byte` | `getAccessBitMode(RoleMode other)` 指定のユーザーロールに対する最終的なアクセス条件を取得します。
    `String` | `getMode()` モード配列を返します。
    `String` | `getRoles()` ロールズを返します。
    `static boolean` | `isAccess(byte bitMode)` ビットロールのメニュアクセス可否を返します。
    `static boolean` | `isDownload(byte bitMode)` ビットロールのファイルアクセス可否を返します。
    `static boolean` | `isEdit(byte bitMode)` ビットロールの画面編集可否を返します。
    `static boolean` | `isMenu(byte bitMode)` ビットロールのメニュアクセス可否を返します。
    `static boolean` | `isPulldown(byte bitMode)` ビットロールのプルダウン化を返します。
    `static boolean` | `isRead(byte bitMode)` ビットロールの読込アクセス可否を返します。
    `static boolean` | `isUpload(byte bitMode)` ビットロールのファイルアクセス可否を返します。
    `static boolean` | `isWrite(byte bitMode)` ビットロールの書込アクセス可否を返します。
    `static RoleMode` | `newInstance(String roles)` ロールとモードを元に、RoleModeオブジェクトを構築します。
    `static RoleMode` | `newInstance(String roles, String mode)` ロールとモードを元に、RoleModeオブジェクトを構築します。
    `String` | `toString()` オブジェクトの識別子として，詳細なユーザー情報を返します。

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

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

- - ### フィールドの詳細

    - #### FULL_MODE

          public static final byte FULL_MODE

      MODE 定義 ( mwf )
      関連項目:
        定数フィールド値

    - #### M_MODE

          public static final byte M_MODE

      MODE 定義 ( m-- )
      関連項目:
        定数フィールド値

    - #### P_MODE

          public static final byte P_MODE

      MODE 定義 ( p-- )
      関連項目:
        定数フィールド値

    - #### R_MODE

          public static final byte R_MODE

      MODE 定義 ( -r- )
      関連項目:
        定数フィールド値

    - #### W_MODE

          public static final byte W_MODE

      MODE 定義 ( -w- )
      関連項目:
        定数フィールド値

    - #### D_MODE

          public static final byte D_MODE

      MODE 定義 ( --d )
      関連項目:
        定数フィールド値

    - #### U_MODE

          public static final byte U_MODE

      MODE 定義 ( --u )
      関連項目:
        定数フィールド値

    - #### F_MODE

          public static final byte F_MODE

      MODE 定義 ( --f )
      関連項目:
        定数フィールド値

    - #### E_MODE

          public static final byte E_MODE

      MODE 定義 ( --f )
      関連項目:
        定数フィールド値

    - #### DEFAULT_MODE

          public static final String DEFAULT_MODE

      関連項目:
        定数フィールド値

  - ### メソッドの詳細

    - #### newInstance

          public static RoleMode newInstance(String roles)

      ロールとモードを元に、RoleModeオブジェクトを構築します。 条件が同じ RoleModeオブジェクト があれば、キャッシュから返します。 キャッシュになければ、新規に作成します。 このキャッシュは、完全な内部キャッシュなので、いつクリアされるか保障がありません。
      パラメータ:
        `roles` - "|"で区切られた ロール文字列
      戻り値:
        RoleModeオブジェクト
      変更履歴:

        4.3.0.0 (2008/07/04) ロールモードマルチ対応

    - #### newInstance

          public static RoleMode newInstance(String roles,
                             String mode)

      ロールとモードを元に、RoleModeオブジェクトを構築します。 条件が同じ RoleModeオブジェクト があれば、キャッシュから返します。 キャッシュになければ、新規に作成します。 このキャッシュは、完全な内部キャッシュなので、いつクリアされるか保障がありません。
      パラメータ:
        `roles` - "|"で区切られた ロール文字列
        `mode` - "|"で区切られ、ロール文字列と対応付けられたモード文字列。唯一の場合は共通モードになる。
      戻り値:
        RoleModeオブジェクト
      変更履歴:

        4.3.0.0 (2008/07/04) ロールモードマルチ対応

    - #### getRoles

          public String getRoles()

      ロールズを返します。
      戻り値:
        ロールズ文字列

    - #### getMode

          public String getMode()

      モード配列を返します。
      戻り値:
        モード配列

    - #### getAccessBitMode

          public byte getAccessBitMode(RoleMode other)

      指定のユーザーロールに対する最終的なアクセス条件を取得します。 アクセス条件は、複数あるユーザーロールの中で、最大のアクセス条件を算出します。 例えば、AAA(-r)|BBB(-w)|CCC(mr) の３つのロール/モードが設定されている場合、 ユーザーが、AAA だけの場合は、-r ですが、AAA|BBB を持っている場合は、-w になります。 さらに、BBB|CCC と持っている場合は、(-w:書き込み許可)と(mr:メニューから読取許可)の 権限により、mw:メニューからの書き込み許可が与えられます。 モード指定がある場合は、AND演算になります。 例えば、AAA(-r)|BBB(-w)|CCC(mr) と BBB|CCC(-r) の場合、(-r)+(-w)+(mr)*(-r)=-w に なります。ロールは、OR ですが、モードは、同一ロールでのAND になります。 実際には、メニュー表示の可否は、ポップアップ系によく用いられますので、上記のような 許可が実際にあるかどうかは不明ですが、すべてのモードのOR条件での結合になります。
      パラメータ:
        `other` - ロールモード
      戻り値:
        アクセスビット
      変更履歴:

        4.3.0.0 (2008/07/04) ロールモードマルチ対応

    - #### isMenu

          public static boolean isMenu(byte bitMode)

      ビットロールのメニュアクセス可否を返します。 M_MODE = (byte)0x10; // m-- = 10000 = 0x10
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)

    - #### isPulldown

          public static boolean isPulldown(byte bitMode)

      ビットロールのプルダウン化を返します。 P_MODE = (byte)0x10; // p-- = 010000 = 0x10
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        true:プルダウン化
      変更履歴:

        4.3.3.0 (2008/10/01) メソッド追加

    - #### isRead

          public static boolean isRead(byte bitMode)

      ビットロールの読込アクセス可否を返します。 R_MODE = (byte)0x04; // -r- = 00100 = 0x04
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)

    - #### isWrite

          public static boolean isWrite(byte bitMode)

      ビットロールの書込アクセス可否を返します。 これは、読込、書込みの判断ではなく、書込みができるか どうかの判断をしています。 読込、書込みの判断は、isAccess を使用してください。
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)

    - #### isAccess

          public static boolean isAccess(byte bitMode)

      ビットロールのメニュアクセス可否を返します。 これは、読込、書込みの判断です。 W_MODE = (byte)0x0C; // -w- = 01100 = 0x0C
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)

    - #### isDownload

          public static boolean isDownload(byte bitMode)

      ビットロールのファイルアクセス可否を返します。 D_MODE = (byte)0x01; // --d = 00001 = 0x01
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)

    - #### isUpload

          public static boolean isUpload(byte bitMode)

      ビットロールのファイルアクセス可否を返します。 U_MODE = (byte)0x02; // --u = 00010 = 0x02
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)

    - #### isEdit

          public static boolean isEdit(byte bitMode)

      ビットロールの画面編集可否を返します。 E_MODE = (byte)0x07; // --e = 0000111 = 0x07
      パラメータ:
        `bitMode` - ビットロール
      戻り値:
        アクセスできる(true)/出来ない(false)
      変更履歴:

        5.4.2.0 (2011/12/01) 新規作成

    - #### toString

          public String toString()

      オブジェクトの識別子として，詳細なユーザー情報を返します。
      オーバーライド:
        `toString` クラス内 `Object`
      戻り値:
        詳細な画面情報

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