KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > manentia > kasai > operative > JDBCMySQLOperativeDAO


1 /*
2  * JDBCMySQLUserDAO.java
3  *
4  * Created on 28 de marzo de 2005, 13:46
5  */

6
7 package org.manentia.kasai.operative;
8
9 import com.koala.commons.log.Log;
10 import com.koala.commons.persistence.DBUtil;
11 import java.sql.*;
12 import java.util.ArrayList JavaDoc;
13 import java.util.Arrays JavaDoc;
14 import java.util.Collection JavaDoc;
15 import java.util.logging.Level JavaDoc;
16 import org.apache.commons.lang.StringUtils;
17 import org.apache.commons.lang.exception.ExceptionUtils;
18 import org.manentia.kasai.AuthObject;
19 import org.manentia.kasai.Group;
20 import org.manentia.kasai.Operative;
21 import org.manentia.kasai.Role;
22 import org.manentia.kasai.User;
23 import org.manentia.kasai.exceptions.AlreadyExistsException;
24 import org.manentia.kasai.exceptions.DataAccessException;
25 import org.manentia.kasai.exceptions.DoesntExistsException;
26 import org.manentia.kasai.exceptions.InvalidAttributesException;
27 import org.manentia.kasai.user.UserHandler;
28 import org.manentia.kasai.util.Constants;
29
30 /**
31  *
32  * @author rzuasti
33  */

34 public class JDBCMySQLOperativeDAO implements OperativeDAO {
35     
36     /** Creates a new instance of JDBCMySQLUserDAO */
37     public JDBCMySQLOperativeDAO() {
38     }
39     
40     public Collection JavaDoc listGroupsOperative(String JavaDoc operative, String JavaDoc object) throws DataAccessException{
41         Connection con = null;
42         String JavaDoc sql;
43         ResultSet rs = null;
44         Group g = null;
45         ArrayList JavaDoc groups = new ArrayList JavaDoc();
46         try{
47             
48             int index = 0;
49             con = DBUtil.getConnection(Constants.DATABASE_SOURCE, Constants.PROPERTY_FILE);
50             while (index!=-1){
51             
52                 sql = "select distinct AG.* from kasai_roles_operatives ARO, " +
53                       "kasai_users_groups AUG,kasai_objects_groups_roles AOGR,kasai_groups AG where " +
54                       "ARO.id_operative='"+ org.apache.commons.lang.StringEscapeUtils.escapeSql(operative) + "' and AOGR.id_object='" + org.apache.commons.lang.StringEscapeUtils.escapeSql(object) + "' and AOGR.id_group=AUG.id_group " +
55                       "and ARO.id_role=AOGR.id_role and AG.id=AUG.id_group " +
56                       "and AG.blocked=0";
57                 
58                 rs = con.createStatement().executeQuery(sql);
59                 while (rs.next()){
60                     g = new Group (rs);
61                     if (!groups.contains(g))
62                         groups.add(g);
63                 }
64                 
65                 index = operative.lastIndexOf('.');
66                 if (index>=0){
67                     operative = operative.substring(0,index);
68                 }
69                 
70             }
71             
72             return groups;
73         }catch (SQLException sqle){
74             Log.getInstance(Constants.PROPERTY_FILE).write (this.getClass().getName(), "listGroupsOperative", ExceptionUtils.getStackTrace(sqle),Level.SEVERE);
75             throw new DataAccessException(sqle);
76         }finally{
77             try{
78                 rs.close();
79             }catch(Exception JavaDoc e){}
80             try{
81                 con.close();
82             }catch(Exception JavaDoc e){}
83         }
84         
85     }
86     
87     public Collection JavaDoc list(String JavaDoc idOperative) throws DataAccessException{
88         Connection con = null;
89         String JavaDoc sql;
90         ResultSet rs = null;
91         Operative o = null;
92         ArrayList JavaDoc operatives = new ArrayList JavaDoc();
93         try{
94             sql = "SELECT * FROM kasai_operatives ";
95             if (StringUtils.isNotEmpty(idOperative)){
96                 sql += " where id='" + org.apache.commons.lang.StringEscapeUtils.escapeSql(idOperative) +"'";
97             }
98             sql += " order by sequence ";
99             con = DBUtil.getConnection(Constants.DATABASE_SOURCE, Constants.PROPERTY_FILE);
100             rs = con.createStatement().executeQuery(sql);
101             while (rs.next()){
102                 o = new Operative (rs);
103                 operatives.add(o);
104             }
105             return operatives;
106         }catch (SQLException sqle){
107             Log.getInstance(Constants.PROPERTY_FILE).write (this.getClass().getName(), "list", ExceptionUtils.getStackTrace(sqle),Level.SEVERE);
108             throw new DataAccessException(sqle);
109         }finally{
110             try{
111                 rs.close();
112             }catch(Exception JavaDoc e){}
113             try{
114                 con.close();
115             }catch(Exception JavaDoc e){}
116         }
117         
118     }
119     
120     public Collection JavaDoc listUsersOperative(String JavaDoc operative, String JavaDoc object) throws DataAccessException{
121         Connection con = null;
122         String JavaDoc sql;
123         ResultSet rs = null;
124         User u = null;
125         ArrayList JavaDoc users = new ArrayList JavaDoc();
126         try{
127
128             sql = "SELECT AU.* FROM kasai_users AU WHERE AU.super_user=1 AND AU.blocked=0";
129             con = DBUtil.getConnection(Constants.DATABASE_SOURCE, Constants.PROPERTY_FILE);
130             rs = con.createStatement().executeQuery(sql);
131             while (rs.next()){
132                 u = new User (rs);
133                 users.add(u);
134             }
135             
136             int index = 0;
137             while (index!=-1){
138             
139                 sql = "select distinct AU.* from kasai_roles_operatives ARO, " +
140                       "kasai_users_groups AUG,kasai_users AU,kasai_objects_groups_roles AOGR,kasai_groups AG where " +
141                       "ARO.id_operative='"+ org.apache.commons.lang.StringEscapeUtils.escapeSql(operative) + "' and AOGR.id_object='" + org.apache.commons.lang.StringEscapeUtils.escapeSql(object) + "' and AOGR.id_group=AUG.id_group " +
142                       "and ARO.id_role=AOGR.id_role and AG.id=AUG.id_group " +
143                       "and AU.id=AUG.id_user" + " and AG.blocked=0" + " and AU.blocked=0";
144
145                 rs = con.createStatement().executeQuery(sql);
146                 while (rs.next()){
147                     u = new User (rs);
148                     if (!users.contains(u))
149                         users.add(u);
150                 }
151
152                 sql = "select distinct AU.* from kasai_roles_operatives ARO,kasai_users AU,kasai_objects_users_roles AOUR " +
153                       "where AOUR.id_user=AU.id and " +
154                       "ARO.id_operative='"+ org.apache.commons.lang.StringEscapeUtils.escapeSql(operative) + "' and AOUR.id_object='" + org.apache.commons.lang.StringEscapeUtils.escapeSql(object) + "' and ARO.id_role=AOUR.id_role" + " and AU.blocked=0";
155                 
156                 rs = con.createStatement().executeQuery(sql);
157                 while (rs.next()){
158                     u = new User (rs);
159                     if (!users.contains(u))
160                         users.add(u);
161                 }
162                 
163                 index = operative.lastIndexOf('.');
164                 if (index>=0){
165                     operative = operative.substring(0,index);
166                 }
167                 
168             }
169             int i = 0;
170             return users;
171         }catch (SQLException sqle){
172             Log.getInstance(Constants.PROPERTY_FILE).write (this.getClass().getName(), "listUsersOperative", ExceptionUtils.getStackTrace(sqle),Level.SEVERE);
173             throw new DataAccessException(sqle);
174         }finally{
175             try{
176                 rs.close();
177             }catch(Exception JavaDoc e){}
178             try{
179                 con.close();
180             }catch(Exception JavaDoc e){}
181         }
182         
183     }
184 }
185
Popular Tags