Oracle神諭

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            284 隨筆 :: 9 文章 :: 106 評論 :: 0 Trackbacks

          (org.jbpm.identity)身份包包含有如下幾個類:
          一、Entity 實體類:這個類作為users<用戶>groups<組>和memberships<成員>的超類,用來管理名稱和權限的增加刪除和獲取。其中用到了jdk的Permission類。目前還不知道這個對具體權限的控制有什么作用?
          二、Group組類:這個類是Entity的繼承子類,這個類主要用于區分層次組、安全角色和其他。  
            (1)主要包含以下幾個Filed:
               protected String type = null;
               protected Group parent = null; //父就是自己
               protected Set children = null; //子是一個集合,其中的元素也是Group
               protected Set memberships = null; //會員
             (2)JBpm的類內部方法的命名還是很不錯的:
              public Set getUsersForMembershipName(String membershipName) 很容易理解為通過membershipName來獲得所有的用戶。 這個內不僅僅是簡單的JavaBean的setter和getter,而是進行一些引申的操作,例如獲取用戶以及addXXX等操作。
             (3)與之相對應的hibernate Mapping文件Group.hbm.xml其中也有幾個地方,值得注意,其實這個在Jbpm中是大量使用的:
                     table="JBPM_ID_GROUP"
                   discriminator-value="G">
              ....
           
            這里表示的是在JBPM_ID_GROUP表中的CLASS_字段等于G的為Group的影射對象。這里我們在使用一個表的不同類型(一個字段對應不同的值)就可以表示不同的類型對象。這一點很值得我們學習的。其他值得我們關注的是它采用的集合類型的操作方式,在我們以前的開發中這種做法并值得采用的。
          三、Membership成員類:它是用戶和組之間的一個聯系的橋梁。會員的名稱代表角色的名稱。一個會員可能是一個組織的位置,所以權限往往于會員聯系。會員的名字能用來做角色的名字。不同的會員來擔當不同的角色。
          protected  String role = null;
          protected Group group = null;
          protected User user = null;
           這個類沒有采用傳統的構造子復用的方式,而是用很了很多的create()方法,有些方法讓人感覺有些茫然不知所措,不過直接相關的代碼,也就明白了。
            其中影射文件也使用了discriminator(鑒別者)的功能,以及many-to-one和set集合的做法
          四、User類:包含有三個字段:password email  以及Set memeberships。
            以下是通過兩種方式獲得Groups的方法,一個是通過組的類別,一種是通過成員名稱(角色名稱)
            public Set getGroupsForGroupType(String groupType)
            public Set getGroupsForMembershipName(String membershipName)

            通過觀察,我們發現這里其實有以下幾個對象:Entity Group Memebership User Permission。其中Group、Memebership、User都是Entity都是子類和父類的關系。Entity和Permission是一對多的關系,表示一個實體擁有各種不同的權限,同樣其他的Group等子類,也與Permission都是一對多的關系。Group 和Memeber是一對多的,一個組具有不同的角色(成員)。Membership與User和Group是多對一的關系。User和Membership之間是一對多的關系。

          其中涉及的表有:
          jbpm_id_group;
          jbpm_id_membership;
          jbpm_id_user;

          posted on 2005-09-17 21:33 java世界暢談 閱讀(1256) 評論(0)  編輯  收藏 所屬分類: JBPM
          主站蜘蛛池模板: 大理市| 湛江市| 崇州市| 鹤壁市| 抚顺市| 镇原县| 中卫市| 韩城市| 新邵县| 潮州市| 云安县| 云林县| 乌拉特后旗| 游戏| 胶南市| 姚安县| 渝中区| 铜川市| 长宁县| 兴文县| 荥经县| 齐河县| 虎林市| 大姚县| 南郑县| 扬中市| 稷山县| 佛山市| 同心县| 清新县| 太原市| 宁远县| 黄大仙区| 宁阳县| 榆林市| 新宾| 东乌珠穆沁旗| 蓝田县| 泸水县| 张北县| 泽州县|