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.List;
22
23 import org.apache.fulcrum.security.entity.Role;
24 import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
25 import org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer;
26 import org.apache.fulcrum.security.torque.peer.managers.PeerRoleManager;
27 import org.apache.fulcrum.security.util.DataBackendException;
28 import org.apache.torque.NoRowsException;
29 import org.apache.torque.TooManyRowsException;
30 import org.apache.torque.TorqueException;
31 import org.apache.torque.criteria.Criteria;
32
33
34
35
36
37
38 public class TorqueTurbineRoleManagerImpl extends PeerRoleManager
39 {
40
41
42 private static final long serialVersionUID = 1L;
43
44
45
46
47 @Override
48 @SuppressWarnings("unchecked")
49 protected <T extends Role> List<T> doSelectAllRoles(Connection con) throws TorqueException
50 {
51 Criteria criteria = new Criteria();
52
53 if ( (getCustomPeer())) {
54 try
55 {
56 TorqueTurbinePeer<T> peerInstance = (TorqueTurbinePeer<T>)getPeerInstance();
57
58 return peerInstance.doSelect( criteria, con );
59 }
60 catch ( DataBackendException e )
61 {
62 throw new TorqueException( e );
63 }
64 } else {
65 return (List<T>)TorqueTurbineRolePeer.doSelect(criteria, con);
66 }
67 }
68
69
70
71
72 @Override
73 @SuppressWarnings("unchecked")
74 protected <T extends Role> T doSelectById(Integer id, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
75 {
76 if ( (getCustomPeer())) {
77 try
78 {
79 TorqueTurbinePeer<T> peerInstance = (TorqueTurbinePeer<T>)getPeerInstance();
80
81 return peerInstance.retrieveByPK( id, con );
82 }
83 catch ( DataBackendException e )
84 {
85 throw new TorqueException( e );
86 }
87 } else {
88 return (T) TorqueTurbineRolePeer.retrieveByPK(id, con);
89 }
90 }
91
92
93
94
95 @Override
96 @SuppressWarnings("unchecked")
97 protected <T extends Role> T doSelectByName(String name, Connection con) throws NoRowsException, TooManyRowsException, TorqueException
98 {
99 Criteria criteria = new Criteria();
100 criteria.setIgnoreCase(true);
101 criteria.setSingleRecord(true);
102
103 List<T> roles = null;
104 if ( (getCustomPeer())) {
105 try
106 {
107 TorqueTurbinePeer<T> peerInstance = (TorqueTurbinePeer<T>)getPeerInstance();
108
109 criteria.where(peerInstance.getTableMap().getColumn(getColumnName()), name);
110 roles = peerInstance.doSelect( criteria, con );
111 }
112 catch ( DataBackendException e )
113 {
114 throw new TorqueException( e );
115 }
116 } else {
117 criteria.where(TorqueTurbineRolePeer.ROLE_NAME, name);
118 roles = (List<T>) TorqueTurbineRolePeer.doSelect(criteria, con);
119 }
120
121 if (roles.isEmpty())
122 {
123 throw new NoRowsException(name);
124 }
125 return roles.get(0);
126 }
127 }