1 package org.apache.fulcrum.security.torque.basic;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 import java.sql.Connection;
21 import java.util.List;
22 import java.util.Set;
23
24 import org.apache.fulcrum.security.entity.Group;
25 import org.apache.fulcrum.security.model.basic.entity.BasicUser;
26 import org.apache.fulcrum.security.torque.om.TorqueBasicUserGroup;
27 import org.apache.fulcrum.security.torque.om.TorqueBasicUserGroupPeer;
28 import org.apache.fulcrum.security.torque.om.TorqueBasicUserPeer;
29 import org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
30 import org.apache.fulcrum.security.util.DataBackendException;
31 import org.apache.fulcrum.security.util.GroupSet;
32 import org.apache.torque.TorqueException;
33 import org.apache.torque.criteria.Criteria;
34 import org.apache.torque.om.SimpleKey;
35
36
37
38
39
40
41
42 public abstract class TorqueAbstractBasicUser extends TorqueAbstractSecurityEntity
43 implements BasicUser
44 {
45
46 private static final long serialVersionUID = 7669398253522416329L;
47
48 private Set<Group> groupSet = null;
49
50
51
52
53
54
55
56
57
58
59
60
61
62 protected List<TorqueBasicUserGroup> getTorqueBasicUserGroupsJoinTorqueBasicGroup(Criteria criteria, Connection con)
63 throws TorqueException
64 {
65 criteria.and(TorqueBasicUserGroupPeer.USER_ID, getEntityId() );
66 return TorqueBasicUserGroupPeer.doSelectJoinTorqueBasicGroup(criteria, con);
67 }
68
69
70
71
72 public void addGroup(Group group)
73 {
74 getGroups().add(group);
75 }
76
77
78
79
80 public GroupSet getGroups()
81 {
82 if (groupSet == null)
83 {
84 groupSet = new GroupSet();
85 }
86 else if(!(groupSet instanceof GroupSet))
87 {
88 groupSet = new GroupSet(groupSet);
89 }
90
91 return (GroupSet)groupSet;
92 }
93
94
95
96
97 @SuppressWarnings("unchecked")
98 public <T extends Group> Set<T> getGroupsAsSet()
99 {
100 return (Set<T>)groupSet;
101 }
102
103
104
105
106 public void removeGroup(Group group)
107 {
108 getGroups().remove(group);
109 }
110
111
112
113
114 public void setGroups(GroupSet groups)
115 {
116 if(groups != null)
117 {
118 this.groupSet = groups;
119 }
120 else
121 {
122 this.groupSet = new GroupSet();
123 }
124 }
125
126
127
128
129 public <T extends Group> void setGroupsAsSet(Set<T> groups)
130 {
131 setGroups(new GroupSet(groups));
132 }
133
134
135
136 @Override
137 public void retrieveAttachedObjects( Connection con )
138 throws DataBackendException
139 {
140 retrieveAttachedObjects( con, false );
141 }
142
143
144
145
146 @Override
147 public void retrieveAttachedObjects( Connection con, Boolean lazy )
148 throws DataBackendException
149 {
150 this.groupSet = new GroupSet();
151
152 try {
153 List<TorqueBasicUserGroup> usergroups = getTorqueBasicUserGroupsJoinTorqueBasicGroup(new Criteria(), con);
154
155 for (TorqueBasicUserGroup tbug : usergroups)
156 {
157 groupSet.add(tbug.getTorqueBasicGroup());
158 }
159 } catch (TorqueException e ) {
160 throw new DataBackendException( e.getMessage(),e );
161 }
162 }
163
164
165
166
167
168
169 public void update(Connection con) throws TorqueException
170 {
171 if (groupSet != null)
172 {
173 Criteria criteria = new Criteria();
174
175
176 criteria.where(TorqueBasicUserGroupPeer.USER_ID, getEntityId());
177 TorqueBasicUserGroupPeer.doDelete(criteria, con);
178
179 for (Group g : groupSet)
180 {
181 TorqueBasicUserGroupue/om/TorqueBasicUserGroup.html#TorqueBasicUserGroup">TorqueBasicUserGroup ug = new TorqueBasicUserGroup();
182 ug.setUserId(getEntityId());
183 ug.setGroupId((Integer)g.getId());
184 ug.save(con);
185 }
186 }
187
188 try
189 {
190 save(con);
191 }
192 catch (Exception e)
193 {
194 throw new TorqueException(e);
195 }
196 }
197
198
199
200
201
202
203 public String getDatabaseName()
204 {
205 return TorqueBasicUserPeer.DATABASE_NAME;
206 }
207
208
209
210
211 public void delete() throws TorqueException
212 {
213 TorqueBasicUserPeer.doDelete(SimpleKey.keyFor(getEntityId()));
214 }
215 }