KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > acl > db > queries > PolicyInsert


1 package de.webman.acl.db.queries;
2
3 import java.sql.Connection JavaDoc;
4 import java.sql.Types JavaDoc;
5 import java.sql.SQLException JavaDoc;
6 import java.sql.ResultSet JavaDoc;
7 import com.teamkonzept.db.*;
8 import com.teamkonzept.webman.mainint.db.queries.accesscontrol.*;
9 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
10
11 /**
12  * $Header: /cvsroot/webman-cms/source/webman/de/webman/acl/db/queries/PolicyInsert.java,v 1.2 2001/09/19 11:51:38 markus Exp $
13  *
14  * @version 0.10
15  * @since 0.10
16  * @author © 2000 Team-Konzept
17  */

18 public class PolicyInsert
19     extends TKExtendedPrepQuery
20 {
21
22     // Constants
23

24     public static final String JavaDoc[] ORDER =
25     {
26         "WM_USER_ID",
27         "WM_ROLE_ID",
28         "WM_CONTEXT_ID",
29         "OBJECT_REFERENCE",
30         "OBJECT_TYPE",
31         "POLICY_ACCESS"
32     };
33
34     public static final Object JavaDoc[][] TYPES =
35     {
36         {"WM_USER_ID", new Integer JavaDoc(Types.INTEGER)},
37         {"WM_ROLE_ID", new Integer JavaDoc(Types.INTEGER)},
38         {"WM_CONTEXT_ID", new Integer JavaDoc(Types.INTEGER)},
39         {"OBJECT_REFERENCE", new Integer JavaDoc(Types.INTEGER)},
40         {"OBJECT_TYPE", new Integer JavaDoc(Types.INTEGER)},
41         {"POLICY_ACCESS", new Integer JavaDoc(Types.CHAR)}
42     };
43
44     public static final boolean[] RELEVANTS =
45     {
46         true
47     };
48
49 /* public static final String SQL = (new StringBuffer()).append("DECLARE @ID INT ")
50                                                          .append("SELECT @ID = ISNULL(MAX(WM_POLICY_ID) + 1, 1) FROM WM_POLICY ")
51                                                          .append("INSERT INTO WM_POLICY (WM_POLICY_ID, WM_USER_ID, WM_ROLE_ID, WM_CONTEXT_ID, OBJECT_REFERENCE, OBJECT_TYPE, POLICY_ACCESS) VALUES (@ID, ?, ?, ?, ?, ?, ?) ")
52                                                          .append("SELECT * FROM WM_POLICY WHERE WM_POLICY_ID = @ID")
53                                                          .toString(); */

54
55   public static final String JavaDoc SQL = null;
56
57   protected static Class JavaDoc[] queryClasses = {
58     SelectIDWMPolicy.class, // [0]
59
InsertWMPolicy.class, // [1]
60
SelectWMPolicy.class // [2]
61
};
62
63
64     // Method implementations
65

66   public boolean execute() {
67     try {
68         init(queryClasses);
69
70         if (aTKDBConnection.isAutoCommit()) {
71           aTKDBConnection.beginTransaction();
72         }
73
74         queries[0].execute(); // execute first query
75
ResultSet JavaDoc rs = queries[0].fetchResultSet();
76         int max = 1;
77
78         if (rs != null && rs.next()) {
79            max = rs.getInt(1) + 1; // get max if any and increase by 1
80
}
81
82         queries[1].setQueryParams("WM_POLICY_ID", new Integer JavaDoc(max));
83         for (int i = 0; i < ORDER.length; i++) {
84             queries[1].setQueryParams(paramOrder[i], queryParams.get(paramOrder[i]));
85         }
86         queries[1].execute(); // ...and execute it
87

88         queries[2].setQueryParams("MAX", new Integer JavaDoc(max));
89         queries[2].execute();
90         addResult(queries[2].fetchResultSet()); // store result for later use
91

92         if (aTKDBConnection.isAutoCommit()) {
93           aTKDBConnection.commitTransaction();
94         }
95     }
96     catch (SQLException JavaDoc sqle) {
97       WebmanExceptionHandler.getException(sqle);
98       try {
99         aTKDBConnection.rollbackTransaction();
100       }
101       catch (SQLException JavaDoc sqle2) {
102         WebmanExceptionHandler.getException(sqle2);
103       }
104     }
105     finally {
106         return hasResults();
107     }
108   }
109
110     public void initQuery (Connection JavaDoc connection)
111     {
112         super.initQuery(connection,
113                         true,
114                         ORDER,
115                         TYPES,
116                         RELEVANTS,
117                         SQL);
118     }
119
120 }
121
Popular Tags