1 package org.apache.fulcrum.security.torque.turbine;
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.HashSet;
22 import java.util.List;
23 import java.util.Set;
24
25 import org.apache.fulcrum.security.entity.User;
26 import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
27 import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
28 import org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeer;
29 import org.apache.fulcrum.security.torque.om.TurbineUserPeer;
30 import org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper;
31 import org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntityDefault;
32 import org.apache.fulcrum.security.util.DataBackendException;
33 import org.apache.torque.TorqueException;
34 import org.apache.torque.criteria.Criteria;
35 import org.apache.torque.om.SimpleKey;
36
37
38
39
40
41
42
43
44
45 public abstract class DefaultAbstractTurbineUser extends TorqueAbstractTurbineTurbineSecurityEntityDefault
46 {
47
48 private static final long serialVersionUID = -7255623655281852566L;
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 protected <T extends TurbineUserGroupRoleModelPeerMapper> List<T> getTurbineUserGroupRolesJoinTurbineGroup(Criteria criteria, Connection con)
69 throws TorqueException, DataBackendException
70 {
71 criteria.and(TurbineUserGroupRolePeer.USER_ID, getEntityId() );
72 try {
73 return (List<T>) TurbineUserGroupRolePeer.doSelectJoinTurbineGroup(criteria, con);
74 } catch ( TorqueException e) {
75 throw new DataBackendException( e.getMessage(), e );
76 }
77 }
78
79
80
81
82 @Override
83 public <T extends TurbineUserGroupRoleModelPeerMapper> void retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws DataBackendException, TorqueException
84 {
85 if (!lazy ) {
86 Set<TurbineUserGroupRole> userGroupRoleSet = new HashSet<TurbineUserGroupRole>();
87
88 if (ugrs == null) {
89
90 ugrs = getTurbineUserGroupRolesJoinTurbineGroup(new Criteria(), con);
91 }
92
93 maptoModel( con, userGroupRoleSet, ugrs );
94
95 setUserGroupRoleSet(userGroupRoleSet);
96 }
97 }
98
99
100
101
102 @Override
103 public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws TorqueException, DataBackendException
104 {
105 if (!lazy) {
106 Set<TurbineUserGroupRole> userGroupRoleSet = new HashSet<TurbineUserGroupRole>();
107
108 List<TurbineUserGroupRoleModelPeerMapper> ugrs = getTurbineUserGroupRolesJoinTurbineGroup(new Criteria(), con);
109
110
111
112 maptoModel( con, userGroupRoleSet, ugrs );
113
114 setUserGroupRoleSet(userGroupRoleSet);
115 }
116 }
117
118
119
120
121 @Override
122 public void retrieveAttachedObjects( Connection con )
123 throws DataBackendException, TorqueException
124 {
125 retrieveAttachedObjects( con, false );
126 }
127
128
129
130
131 @Override
132 public void update(Connection con) throws TorqueException
133 {
134 try
135 {
136 Set<TurbineUserGroupRole> userGroupRoleSet = getUserGroupRoleSet();
137 if ( userGroupRoleSet != null )
138 {
139 Criteria criteria = new Criteria();
140
141
142 criteria.where(TurbineUserGroupRolePeer.USER_ID, getEntityId());
143 TurbineUserGroupRolePeer.doDelete(criteria, con);
144
145 for (TurbineUserGroupRole ugr : userGroupRoleSet)
146 {
147 org.apache.fulcrum.security.torque.om.TurbineUserGroupRole ttugr = new org.apache.fulcrum.security.torque.om.TurbineUserGroupRole();
148 ttugr.setGroupId((Integer)ugr.getGroup().getId());
149 ttugr.setUserId((Integer)ugr.getUser().getId());
150 ttugr.setRoleId((Integer)ugr.getRole().getId());
151 ttugr.save(con);
152 }
153 }
154 save(con);
155 }
156 catch (Exception e)
157 {
158 throw new TorqueException(e);
159 }
160 }
161
162
163
164
165 @Override
166 public void delete() throws TorqueException
167 {
168 TurbineUserPeer.doDelete(SimpleKey.keyFor(getEntityId()));
169 }
170
171
172
173
174
175
176
177 private <T extends TurbineUserGroupRoleModelPeerMapper> void maptoModel( Connection con,
178 Set<TurbineUserGroupRole> userGroupRoleSet,
179 List<T> ugrs )
180 throws DataBackendException
181 {
182 try {
183 for (TurbineUserGroupRoleModelPeerMapper ttugr : ugrs)
184 {
185 TurbineUserGroupRolee/om/TurbineUserGroupRole.html#TurbineUserGroupRole">TurbineUserGroupRole ugr = new TurbineUserGroupRole();
186 ugr.setUser((User) this);
187 ugr.setRole(ttugr.getTurbineRole(con));
188
189
190
191
192 ugr.setGroup(ttugr.getTurbineGroup(con));
193 userGroupRoleSet.add(ugr);
194 }
195 } catch (TorqueException e ) {
196 throw new DataBackendException( e.getMessage(),e );
197 }
198 }
199 }