概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.3.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.resource
クラス UserInfo

    java.lang.Object
      org.opengion.hayabusa.resource.UserInfo

すべての実装されたインタフェース:
  java.lang.Comparable<UserSummary>, Cleanable, UserSummary

    public class UserInfo

extends java.lang.Object
implements UserSummary, Cleanable

ユーザー情報の取得の為のインターフェースを実装したクラスです。 ログイン時のパスワードのチェックや,国名の識別ID，ポータルページのURLなど 個人情報を管理させます。 特に,画面アクセス時の権限やメールの送信，各画面にユーザー情報を表示したり, エラー時のログファイル，テンポラリディレクトリなども管理します。 {@USER.XXXX} で、XXXX 部に、UserInfo オブジェクトで定義されている 属性情報を取り出すことが出来ます。 以下の値は UserInfo オブジェクトの項目から取得します。 ・JNAME ユーザー日本語名称 ・ID ユーザーＩＤ ・INFO ユーザー情報（ユーザーID：日本語名称） ・LANG 言語 ・ROLES ロール ・IPADDRESS IPアドレス ・LOGINTIME ログイン時刻 ・LASTACCESS 最終アクセス画面ID 以下の値はあらかじめ、動的に作成されます。 ・YMD ８byte の今日のシステム日付 ・YMDH １４byte の今日のシステム日時 それ以外は,外部より設定された値です。 従来は、USER.IDNO はUSER.ID が５Byte以上の時のみ先頭１文字を除いたユーザーＩＤとして オブジェクト項目からの取得でしたが、現在は初期値として設定してあります。 外部より再設定可能になっています。

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

フィールドの概要
`static boolean` | `USE_DB_APPLICATION_INFO` コネクションにアプリケーション情報を追記するかどうか指定

コンストラクタの概要
`UserInfo(java.lang.String userID, java.lang.String lang, java.lang.String jname, java.lang.String roles, java.lang.String droles, java.lang.String systemId, java.lang.String ipAddress, ApplicationInfo appInfo)` コンストラクター

メソッドの概要
`void` | `clear()` 初期化(クリア)します(org.opengion.fukurou.util.Cleanable の実装)。
`int` | `compareTo(UserSummary object)` 自然比較メソッド インタフェース Comparable の 実装です。
`boolean` | `equals(java.lang.Object object)` このオブジェクトと他のオブジェクトが等しいかどうかを示します。
`byte` | `getAccessBitMode(RoleMode other)` 指定のユーザーロールに対する最終的なアクセス条件を取得します。
`ApplicationInfo` | `getApplicationInfo(java.lang.String gamenId, java.lang.String prgId)` アクセスログ取得の為,ApplicationInfo オブジェクトを返します。
`java.lang.String` | `getAttribute(java.lang.String key)` UserInfoの属性文字列を取得します。
`java.lang.String` | `getDataCondition(java.lang.String clm)` 指定されたカラムキーに対応するデータの条件式を返します。
`HybsEntry[]` | `getEntrys()` UserInfoの属性文字列の内部情報を返します。
`java.util.Map<java.lang.String,FavoriteGUIData>` | `getFavoriteMap()` ユーザー個別のお気に入り画面オブジェクトの配列を取得します。
`GUIInfo` | `getGUIInfo(java.lang.String gamenId)` ユーザー個別の画面オブジェクトを取得します。
`GUIInfo[]` | `getGUIInfos()` ユーザー個別の画面オブジェクトのマップを取得します。
`java.lang.String` | `getInfo()` オブジェクトの識別子として，ユーザー情報を返します。
`java.lang.String` | `getIPAddress()` ユーザーのログインIPアドレスを取得します。
`java.lang.String` | `getJname()` ユーザー情報 名称（日本語）を取得します。
`java.lang.String` | `getLang()` ユーザー情報ロケール（言語）を取得します。
`long` | `getLoginTime()` ユーザーログイン時刻を取得します。
`java.lang.String` | `getParameter(java.lang.String key)` ユーザーパラメータを取得します。
`RoleMode` | `getRoleMode()` ロールモード情報を取得します。
`java.lang.String` | `getRoles()` ユーザー情報 ロール（役割）を取得します。
`java.lang.String` | `getUserID()` ユーザーを取得します。
`int` | `hashCode()` オブジェクトのハッシュコード値を返します。
`boolean` | `isAccess(java.lang.String role)` このユーザーの権限で、指定のロールが許可されているかどうかを判定します。
`boolean` | `isGUIInfoSet()` 画面オブジェクトのマップがセット済みかどうかを取得します。
`boolean` | `isValidAddr(java.lang.String addr)` アクセスが許可されているアドレスかどうかをチェックします。
`void` | `removeAttribute(java.lang.String key)` UserInfoの属性文字列を削除します。
`void` | `setAccessGui(GUIInfo guiInfo)` このユーザーでアクセスされた画面オブジェクトを設定します。
`void` | `setAttribute(java.lang.String key, java.lang.String value, boolean save)` UserInfoの属性文字列を登録します。
`void` | `setGUIMap(java.util.Map<java.lang.String,GUIInfo> newGuiMap, java.util.Set<java.lang.String> newForbidAddrSet)` ユーザー個別の画面オブジェクトのマップをセットします。
`void` | `setLang(java.lang.String newLang)` ユーザー情報ロケール（言語）をセットします。
`java.lang.String` | `toString()` オブジェクトの識別子として，詳細なユーザー情報を返します。

クラス java.lang.Object から継承されたメソッド
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

フィールドの詳細

### USE_DB_APPLICATION_INFO

    public static final boolean USE_DB_APPLICATION_INFO

  コネクションにアプリケーション情報を追記するかどうか指定

コンストラクタの詳細

### UserInfo

    public UserInfo(java.lang.String userID,
                    java.lang.String lang,
                    java.lang.String jname,
                    java.lang.String roles,
                    java.lang.String droles,
                    java.lang.String systemId,
                    java.lang.String ipAddress,
                    ApplicationInfo appInfo)

  コンストラクター

  パラメータ:
    `userID` - ユーザー
    `lang` - 言語
    `jname` - 日本語名称
    `roles` - ロール
    `droles` - データロール
    `systemId` - システムID
    `ipAddress` - IPアドレス
    `appInfo` - ApplicationInfo
  変更履歴:

    3.0.0.1 (2003/02/14) ユーザー毎のエンコード指定方法を廃止します。
    3.1.3.0 (2003/04/10) ユーザー情報から、エンコード情報を削除する。
    3.4.0.3 (2003/09/10) "root","manager","admin" のロールを、すべて root 権限を与える。
    3.8.5.3 (2006/06/30) USE_USER_IDNO_C_SAPLESS を判定条件に加える。
    3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfo オブジェクトを設定
    4.3.0.0 (2008/07/04) ロールモードマルチ対応
    4.4.0.0 (2009/08/02) データロール対応

メソッドの詳細

### getParameter

    public java.lang.String getParameter(java.lang.String key)

  ユーザーパラメータを取得します。 ユーザーパラメーターは、通常、GE16 テーブルより取得します。 取得するSQL文は、SystemData の USER_PARAMETER_SQL に記述しておきます。 ユーザーパラメータに、値が存在しない場合は、システムリソースより 取得します。

  パラメータ:
    `key` - String パラメータキー
  戻り値:
    String パラメータ値(ユーザーパラメータになければ、システムリソースより取得

### getLoginTime

    public long getLoginTime()

  ユーザーログイン時刻を取得します。

  定義:
    インタフェース `UserSummary` 内の `getLoginTime`
  戻り値:
    long ログイン時刻

### getIPAddress

    public java.lang.String getIPAddress()

  ユーザーのログインIPアドレスを取得します。

  定義:
    インタフェース `UserSummary` 内の `getIPAddress`
  戻り値:
    String IPアドレス

### getUserID

    public java.lang.String getUserID()

  ユーザーを取得します。

  定義:
    インタフェース `UserSummary` 内の `getUserID`
  戻り値:
    String ユーザー

### getLang

    public java.lang.String getLang()

  ユーザー情報ロケール（言語）を取得します。

  定義:
    インタフェース `UserSummary` 内の `getLang`
  戻り値:
    String lang

### setLang

    public void setLang(java.lang.String newLang)

  ユーザー情報ロケール（言語）をセットします。

  パラメータ:
    `newLang` - String
  変更履歴:

    5.1.4.0 (2010/03/01) lang を書き換え可能とする。

### getJname

    public java.lang.String getJname()

  ユーザー情報 名称（日本語）を取得します。

  定義:
    インタフェース `UserSummary` 内の `getJname`
  戻り値:
    String jname

### getRoles

    public java.lang.String getRoles()

  ユーザー情報 ロール（役割）を取得します。

  定義:
    インタフェース `UserSummary` 内の `getRoles`
  戻り値:
    String roles

### getRoleMode

    public RoleMode getRoleMode()

  ロールモード情報を取得します。

  戻り値:
    RoleMode ロールモード情報
  変更履歴:

    4.3.0.0 (2008/07/04) 新規追加

### getInfo

    public java.lang.String getInfo()

  オブジェクトの識別子として，ユーザー情報を返します。

  定義:
    インタフェース `UserSummary` 内の `getInfo`
  戻り値:
    ユーザー情報

### setAttribute

    public void setAttribute(java.lang.String key,
                             java.lang.String value,
                             boolean save)

  UserInfoの属性文字列を登録します。 予約文字(JNAME,ID,INFO,LANG,ROLES,IPADDRESS,LOGINTIME,LASTACCESS,YMD,YMDH,LASTGAMENNM)を 登録しようとした場合は、エラーにします。

  パラメータ:
    `key` - String キー
    `value` - String 値
    `save` - boolean GE20(ユーザー定数)に情報を保存するか
  例外:
    `HybsSystemException`
  変更履歴:

    3.5.6.0 (2004/06/18) synchronized をattribute に行います。
    4.3.4.0 (2008/12/01) GE20(ユーザー定数)へ登録するかのフラグを追加

### getAttribute

    public java.lang.String getAttribute(java.lang.String key)

  UserInfoの属性文字列を取得します。 以下の値は UserInfo オブジェクトの項目から取得します。

       ・JNAME      ユーザー日本語名称
       ・ID         ユーザーＩＤ
       ・IDNO       (初期値)USER.ID が５Byte以上の時のみ先頭１文字を除いたユーザーＩＤ
       ・INFO       ユーザー情報（ユーザーID：日本語名称）
       ・LANG       言語
       ・ROLES      ロール
       ・IPADDRESS  IPアドレス
       ・LOGINTIME  ログイン時刻
       ・LASTACCESS 最終アクセス画面ID
       ・LASTGAMENNM 最終アクセス画面名

       以下の値はあらかじめ、動的に作成されます。
       ・YMD       ８byte の今日のシステム日付
       ・YMDH    １４byte の今日のシステム日時

  それ以外は,外部より設定された値です。

  定義:
    インタフェース `UserSummary` 内の `getAttribute`
  パラメータ:
    `key` - String キー
  戻り値:
    属性文字列
  関連項目:
    `getAttribute( String )`
  変更履歴:

    2.1.0.2 (2002/11/07) USER.IDNO の返す値をUSER.ID が５Byte以上の時のみ、 先頭1文字を除いた値を返す様に変更。それ以外は、USER.IDを返す。
    2.2.0.0 (2002/12/17) 中国語（国際化）対応 ENCODE 追加
    3.1.3.0 (2003/04/10) ユーザー情報から、エンコード情報を削除する。
    3.5.4.2 (2003/12/15) ENAME,MAILTO、MAILUSERID、MAILPASSWD、GROUP、PROJECTを削除する。
    3.5.6.0 (2004/06/18) synchronized をattribute に行います。
    3.6.0.0 (2004/09/17) PASSWD を削除する。
    3.8.1.2 (2005/12/19) USER.IDNO を削除する。(外部設定可能にするため)
    3.8.7.0 (2006/12/15) ApplicationInfo オブジェクトから最終アクセス画面を取得
    4.4.0.0 (2009/08/02) データロール属性対応
    4.4.0.1 (2009/08/08) LASTGAMENNM追加

### getEntrys

    public HybsEntry[] getEntrys()

  UserInfoの属性文字列の内部情報を返します。 この内部情報の中には、UserInfo 自身の管理情報も含めます。 独自管理キーは、JNAME,ID,IDNO,INFO,LANG,ROLES,IPADDRESS,LOGINTIME,LASTACCESS,LASTGAMENNM です。 それ以外は,外部より設定された値です。

  戻り値:
    HybsEntry[] 属性文字列のHybsEntryオブジェクト配列
  変更履歴:

    4.0.0 (2004/12/31) 新規作成
    4.4.0.1 (2009/08/08) LASTGAMENNM追加

### removeAttribute

    public void removeAttribute(java.lang.String key)

  UserInfoの属性文字列を削除します。

  パラメータ:
    `key` - String キー
  変更履歴:

    3.5.6.0 (2004/06/18) synchronized をattribute に行います。

### setGUIMap

    public void setGUIMap(java.util.Map<java.lang.String,GUIInfo> newGuiMap,
                          java.util.Set<java.lang.String> newForbidAddrSet)

  ユーザー個別の画面オブジェクトのマップをセットします。

  パラメータ:
    `newGuiMap` - Map 画面オブジェクトのマップ
    `newForbidAddrSet` - Set アクセス禁止アドレスリスト
  変更履歴:

    3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfo オブジェクトを設定
    4.0.0 (2005/01/31) 新規追加
    4.1.1.0 (2008/01/29) 画面の格上げとお気に入りマップ作成はクラスUserAccessTableに依頼
    5.2.0.0 (2010/09/01) アクセス禁止アドレスによる不正アクセス防止機能追加

### getGUIInfo

    public GUIInfo getGUIInfo(java.lang.String gamenId)

  ユーザー個別の画面オブジェクトを取得します。 アクセスできない画面IDが指定されたときは、null が返ります。

  パラメータ:
    `gamenId` - String 画面ID
  戻り値:
    GUIInfo 画面オブジェクト
  変更履歴:

    4.0.0 (2005/01/31) 新規追加

### getGUIInfos

    public GUIInfo[] getGUIInfos()

  ユーザー個別の画面オブジェクトのマップを取得します。

  戻り値:
    Map 画面オブジェクトの配列
  変更履歴:

    4.0.0 (2005/01/31) 新規追加

### isValidAddr

    public boolean isValidAddr(java.lang.String addr)

  アクセスが許可されているアドレスかどうかをチェックします。 チェックの方法は、ブラックリスト方式です。 画面リソースに登録された一覧の内、そのユーザーが許可されていないアドレスに 対してのみfalseが返ります。 画面リソースに登録されていないアドレスや、アドレスにURLの区切り文字(/)が 含まれている場合はチェックされません。(trueが返ります)

  パラメータ:
    `addr` - チェック対象のアドレス
  戻り値:
    アクセスが許可されているアドレスかどうか
  変更履歴:

    5.2.0.0 (2010/09/01) 新規追加

### getFavoriteMap

    public java.util.Map<java.lang.String,FavoriteGUIData> getFavoriteMap()

  ユーザー個別のお気に入り画面オブジェクトの配列を取得します。

  戻り値:
    Map お気に入り画面オブジェクトの配列
  変更履歴:

    4.1.1.0 (2008/01/31) 新規追加

### isGUIInfoSet

    public boolean isGUIInfoSet()

  画面オブジェクトのマップがセット済みかどうかを取得します。

  戻り値:
    GUIMap がセット済みかどうか(true:セット済み / false:未セット)
  変更履歴:

    4.0.0 (2005/01/31) 新規追加

### 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` - RoleMode ロールモード
  戻り値:
    アクセスビット
  変更履歴:

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

### isAccess

    public boolean isAccess(java.lang.String role)

  このユーザーの権限で、指定のロールが許可されているかどうかを判定します。

  パラメータ:
    `role` - String チェックを行うロール
  戻り値:
    boolean アクセスできる（true)/出来ない(false)
  変更履歴:

    4.3.0.0 (2008/07/04) ロールモードマルチ対応
    4.3.0.1 (2008/08/11) ロールチェック時の引数間違い、是正

### clear

    public void clear()

  初期化(クリア)します(org.opengion.fukurou.util.Cleanable の実装)。 画面オブジェクトのマップをクリアし、セット済みフラグを未セットに設定します。 システムリソースの USE_ACCESS_TOKEI_TABLE が true の場合は、 画面アクセス状況を、アクセス統計テーブル(GE15)に書き込みます。 ユーザー単位のパラメータは、システムリソースの USER_PARAMETER_SQL で 定義された値を検索して、取り込みます。

  定義:
    インタフェース `Cleanable` 内の `clear`
  変更履歴:

    3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfo オブジェクトを設定
    4.0.0 (2005/01/31) 新規追加

### getApplicationInfo

    public ApplicationInfo getApplicationInfo(java.lang.String gamenId,
                                              java.lang.String prgId)

  アクセスログ取得の為,ApplicationInfo オブジェクトを返します。

  パラメータ:
    `gamenId` - 実行中の画面ID
    `prgId` - 実行中のプログラムID
  戻り値:
    ApplicationInfo オブジェクト
  変更履歴:

    3.8.7.0 (2006/12/15) 新規追加

### compareTo

    public int compareTo(UserSummary object)

  自然比較メソッド インタフェース Comparable の 実装です。 ユーザーの順序は、ユーザーID そのものの順序であらわされます。 同一ユーザーの場合は，ログインタイムの順番になります。

  定義:
    インタフェース `java.lang.Comparable<UserSummary>` 内の `compareTo`
  定義:
    インタフェース `UserSummary` 内の `compareTo`
  パラメータ:
    `object` - UserSummary 比較対象のObject
  戻り値:
    int このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
  変更履歴:

    5.1.8.0 (2010/07/01) UserSummary の Comparable を型設定

### equals

    public boolean equals(java.lang.Object object)

  このオブジェクトと他のオブジェクトが等しいかどうかを示します。 インタフェース Comparable の 実装に関連して、再定義しています。 ユーザーは、ユーザーIDが等しく、かつ ログイン時刻が同一の場合に、 等しいと判断されます。

  オーバーライド:
    クラス `java.lang.Object` 内の `equals`
  パラメータ:
    `object` - 比較対象の参照オブジェクト
  戻り値:
    obj 引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false

### hashCode

    public int hashCode()

  オブジェクトのハッシュコード値を返します。 このメソッドは、java.util.Hashtable によって提供されるような ハッシュテーブルで使用するために用意されています。 equals( Object ) メソッドをオーバーライトした場合は、hashCode() メソッドも 必ず 記述する必要があります。 ここでは、ログイン時刻(long 値)の上位 32 ビットと下位 32 ビットの排他的論理和 を求めています。 (int)(this.longValue()^(this.longValue()>>>32)) ※ hashCode の 同一オブジェクトには同一ハッシュコードという規則と 発生頻度,ランダム性を考慮すれば、ログイン時刻そのもの（long）の ハッシュコードでも運用上は全く問題ないと考えられます。

  オーバーライド:
    クラス `java.lang.Object` 内の `hashCode`
  戻り値:
    このオブジェクトのハッシュコード値
  変更履歴:

    3.5.6.0 (2004/06/18) 新規追加

### toString

    public java.lang.String toString()

  オブジェクトの識別子として，詳細なユーザー情報を返します。

  オーバーライド:
    クラス `java.lang.Object` 内の `toString`
  戻り値:
    詳細なユーザー情報

### getDataCondition

    public java.lang.String getDataCondition(java.lang.String clm)

  指定されたカラムキーに対応するデータの条件式を返します。

  パラメータ:
    `clm` - カラム名
  戻り値:
    データの条件式
  変更履歴:

    4.4.0.0 (2009/08/02) 新規追加

### setAccessGui

    public void setAccessGui(GUIInfo guiInfo)

  このユーザーでアクセスされた画面オブジェクトを設定します。 これは、画面アクセスの履歴(順番)を管理する機能に使います。

  パラメータ:
    `guiInfo` - GUIInfo
  変更履歴:

    5.2.3.0 (2010/12/01) 新規追加

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.3.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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