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