1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 package edu.internet2.middleware.grouper.ui.util;
34
35 import java.util.Set;
36
37 import edu.internet2.middleware.grouper.GroupType;
38 import edu.internet2.middleware.grouper.GroupTypeFinder;
39 import edu.internet2.middleware.grouper.GrouperHelper;
40 import edu.internet2.middleware.grouper.Member;
41 import edu.internet2.middleware.grouper.Membership;
42 import edu.internet2.middleware.subject.SubjectNotFoundException;
43
44
45
46
47
48
49
50
51
52 public class MembershipAsMap extends ObjectAsMap {
53
54 protected String objType = "Membership";
55
56 private Membership membership = null;
57 private boolean withParents=false;
58
59 protected MembershipAsMap() {}
60
61
62
63
64 public MembershipAsMap(Membership membership) {
65 this(membership,false);
66 }
67
68
69
70
71
72 public MembershipAsMap(Membership membership,boolean withParents) {
73 super();
74 init(membership,withParents);
75 }
76
77 protected void init(Membership membership, boolean withParents) {
78 super.objType = objType;
79 if (membership == null)
80 throw new NullPointerException(
81 "Cannot create MembershipAsMap with a null Membership");
82 this.membership = membership;
83 this.withParents=withParents;
84 wrappedObject = membership;
85 try {
86 put("memberUuid",GrouperHelper.getMemberUuid(membership));
87 put("field",membership.getList());
88 }catch(Exception e) {
89 throw new RuntimeException(membershipToString(membership) + e.getMessage());
90 }
91 }
92
93
94
95 public Object get(Object key) {
96
97 Object obj=super.get(key);
98
99 if(obj==null) {
100
101 try {
102 if("subject".equals(key)) {
103 obj = GrouperHelper.subject2Map(membership.getMember().getSubject());
104 put(key,obj);
105 }else if("group".equals(key)) {
106 obj=GrouperHelper.group2Map(null,membership.getGroup());
107 put(key,obj);
108 }else if("viaGroup".equals(key)) {
109 obj=GrouperHelper.group2Map(null,membership.getViaGroup());
110 put(key,obj);
111 }else if("parentMembership".equals(key)) {
112 obj=ObjectAsMap.getInstance("MembershipAsMap",membership.getParentMembership());
113 put(key,obj);
114 }
115 }catch(Exception e){}
116 if(obj!=null) return obj;
117 }
118
119 if(obj==null) obj="";
120 return obj;
121 }
122
123
124 public String membershipToString(Membership mship) {
125 Member m=null;
126 try {
127 m=mship.getMember();
128 }catch(Exception e) {
129 throw new RuntimeException("Problem getting member for Membership: " + mship.toString());
130 }
131 StringBuffer sb=new StringBuffer("Member Uuid: ");
132 sb.append(m.getUuid());
133 sb.append("\nSubject Id: ");
134 sb.append(m.getSubjectId());
135 sb.append("\nSubject Source: ");
136 sb.append(m.getSubjectSourceId());
137 sb.append("\nSubject type: ");
138 sb.append(m.getSubjectTypeId());
139 sb.append("\n");
140 return sb.toString();
141 }
142
143
144 }