パッケージ 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" ファイル入出力 uではエディットメニューそのものが、d,fでは【表示項目設定】タブは表示されません。 "o" 表示順編集のみ可 … この設定では、【表示項目設定】 タブで位置と表示順のみ変更できます。 "e" 画面編集可 … この設定で、編集機能がフルに使えます。 互換性の関係より、"" は、"e" と同等とします。 設定キーの関係より、"o" か "e" を設定すると、"f" と同じ権限が自動的に設定されます。 この３項目を順次つないで、"--","-r","-w","mr","mw" などの設定を行います。 モードが設定されている場合は、共通モードとして、すべてのロールに同じモードを 割り当てます。個別に割り当てる場合は、ROLES 情報の後ろに () 付きで追記します。 例えば、AAA|BBB(-r)|CCC とすれば、BBB ロールの場合は、読取専用になります。 ロールをぶつける場合は、AND 演算になります。 過去(Ver3)のモードとの互換性をとる場合、"rw" は "mw" へ、"r-" は"mr" へ変換 してください。

変更履歴:
  4.0.0.0 (2004/01/31) 新規作成, 4.3.3.0 (2008/10/01) pモード追加
機能分類
  リソース管理
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `DEFAULT_MODE`
  初期のモード

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `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`
  `isFullEdit(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`

- ## フィールド詳細

  - ### 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) ロールモードマルチ対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### newInstance

    public static RoleMode newInstance(String roles, String mode)
    ロールとモードを元に、RoleModeオブジェクトを構築します。 条件が同じ RoleModeオブジェクト があれば、キャッシュから返します。 キャッシュになければ、新規に作成します。 このキャッシュは、完全な内部キャッシュなので、いつクリアされるか保障がありません。
    パラメータ:
      `roles` - "|"で区切られた ロール文字列
      `mode` - "|"で区切られ、ロール文字列と対応付けられたモード文字列。唯一の場合は共通モードになる。
    戻り値:
      RoleModeオブジェクト
    変更履歴:
      4.3.0.0 (2008/07/04) ロールモードマルチ対応, 6.4.3.3 (2016/03/04) Map#computeIfAbsent で対応する。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### 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## , p## の場合に、true になります。 これは、メニューに表示されるかどうかの判定に使われます。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      メニュー表示できる(true)/出来ない(false)

  - ### isPulldown

    public static boolean isPulldown(byte bitMode)
    ビットロールのプルダウン化を返します。 ロールが、p## の場合に、true になります。 ボタンメニュー時でも強制的に従来のプルダウンにします。 今後は廃止の方向です。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      true:プルダウン化
    変更履歴:
      4.3.3.0 (2008/10/01) メソッド追加

  - ### isRead

    public static boolean isRead(byte bitMode)
    ビットロールの読込アクセス可否を返します。 ロールが、#r# , #w# の場合に、true になります。 読み取り属性がある場合、画面が利用可能になります。 #-# の場合は、画面へのアクセスができないため、 メニューアクセス許可を与える、m-# の設定は無意味です。 この場合は、メニューにも表示されません。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      読込アクセスできる(true)/出来ない(false)

  - ### isWrite

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

  - ### isAccess

    public static boolean isAccess(byte bitMode)
    ビットロールの画面アクセス可否を返します。 これは、画面にアクセスできるかどうかの判断です。 ロールが、#r# , #w# の場合に、true になります。 現時点では、isRead(byte) と計算方法は異なりますが、同じ結果になっています。 これは、たまたま、現時点のロールの種類がそうなっているだけで、将来的に 同じかどうかは、保障されていません。 よって、読み取り許可と、画面アクセス許可は、分けて考えてください。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      画面アクセスできる(true)/出来ない(false)

  - ### isDownload

    public static boolean isDownload(byte bitMode)
    ビットロールのファイル出力可否を返します。 ロールが、##d , ##f , ##o , ##e(= ##) の場合に、true になります。 ##u の場合に、false になります。 ファイル出力の可否を判定します。 ## は、互換性の関係で、##e と同じです。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      ファイル出力できる(true)/出来ない(false)

  - ### isUpload

    public static boolean isUpload(byte bitMode)
    ビットロールのファイル入力可否を返します。 ロールが、##u , ##f , ##o , ##e(= ##) の場合に、true になります。 ##d の場合に、false になります。 ファイル入力の可否を判定します。 ## は、互換性の関係で、##e と同じです。 ダウンロードはさせないが、アップロードを行う場合に使います。 ここでのアップロードとは、基本的にデータの取り込みになりますので、 アップロードのみという扱いは、あまりありません。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      ファイル入力できる(true)/出来ない(false)

  - ### isEdit

    public static boolean isEdit(byte bitMode)
    ビットロールの画面編集可否を返します。 ロールが、##o , ##e(= ##) の場合に、true になります。 このビットロールだけ特殊で、フラグが ON の場合に、機能制限がかかります。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      アクセスできる(true)/出来ない(false)
    変更履歴:
      5.4.2.0 (2011/12/01) 新規作成, 5.5.5.2 (2012/08/10) oモード追加に伴い変更

  - ### isFullEdit

    public static boolean isFullEdit(byte bitMode)
    ビットロールの画面編集のフルコントロール可否を返します。 ロールが、##e(= ##) の場合に、true になります。 これは、フルコントロールの状態を指します。
    パラメータ:
      `bitMode` - ビットロール
    戻り値:
      アクセスできる(true)/出来ない(false)
    変更履歴:
      5.5.5.2 (2012/08/10) 新規作成

  - ### toString

    public String toString()
    オブジェクトの識別子として，詳細なユーザー情報を返します。
    オーバーライド:
      `toString` クラス内 `Object`
    戻り値:
      詳細な画面情報
    このﾒｿｯﾄﾞは、nullを返しません