KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > postgresql > TKDBContentTreeDeleteDependentDC


1 package com.teamkonzept.webman.mainint.db.queries.postgresql;
2 import java.sql.*;
3 import com.teamkonzept.db.*;
4 import com.teamkonzept.webman.mainint.db.queries.content.*;
5 import com.teamkonzept.webman.mainint.db.queries.CheckTableExistence;
6 import com.teamkonzept.webman.mainint.WebmanExceptionHandler;
7
8 /*
9  * TKDBContentTreeDeleteDependentDC
10  * loescht alle Eintraeg in DC die abhaengkeiten in CONTENT_TREE haben
11  * Input: CONTENT_NODE_ID
12  * Output: none
13  * @author
14  * @version
15  */

16 public class TKDBContentTreeDeleteDependentDC extends TKExtendedPrepQuery
17 {
18     public final static boolean ISPREPARED = true;
19
20     public final static String JavaDoc[] PARAMORDER = { "CONTENT_NODE_ID" };
21
22     public final static Object JavaDoc[][] TYPES = null;
23
24     public final static boolean[] SETRELEVANTS = { false };
25
26
27     protected static Class JavaDoc[] queryClasses = {
28     CheckTableExistence.class, // [0]
29
CreateTempTableContentNodeId.class, // [1]
30
SelectLeftRightNrFromContentTree.class, // [2]
31
InsertIntoTempTableContentNodeId.class, // [3]
32
DeleteFromContentSelection2.class, // [4]
33
DeleteFromDocumentContent2.class, // [5]
34
DropTempTableContentNodeId.class // [6]
35
};
36
37     public boolean execute()
38     {
39     try
40     {
41
42         init(queryClasses); // init query objects
43

44         Object JavaDoc contentNodeId = queryParams.get("CONTENT_NODE_ID");
45
46         boolean isNotOpen = aTKDBConnection.isAutoCommit();
47         if (isNotOpen)
48         {
49         TKDBManager.beginTransaction(); // begin transaction
50
}
51
52         // CLASS: CheckTableExistence.class
53
// PARAMS: TABLE_NAME (=WEBMAN_TEMP)
54
// [0]
55
queries[0].setQueryParams("TABLE_NAME", "webman_temp"); // check existence!!!
56
queries[0].execute();
57         ResultSet exist = queries[0].fetchResultSet();
58         if (exist != null && exist.next())
59         {
60             queries[6].execute();
61         }
62         queries[1].execute();
63
64
65         // OLD: SELECT @L_NR = LEFT_NR, @R_NR = RIGHT_NR FROM CONTENT_TREE WHERE CONTENT_NODE_ID = ?
66
// NEW: SELECT LEFT_NR, RIGHT_NR FROM CONTENT_TREE WHERE CONTENT_NODE_ID = ?
67
// CLASS: SelectLeftRightNrFromContentTree.class
68
// PARAMS: NODE_ID
69
// [2]
70
queries[2].setQueryParams("NODE_ID", contentNodeId);
71         queries[2].execute();
72         ResultSet rs2 = queries[2].fetchResultSet();
73         Object JavaDoc leftNr = null;
74         Object JavaDoc rightNr = null;
75         if (rs2 != null && rs2.next())
76         {
77         leftNr = rs2.getObject(1);
78         rightNr = rs2.getObject(2);
79         }
80
81
82         // OLD: INSERT INTO #temp (CONTENT_NODE_ID) SELECT (CONTENT_NODE_ID) FROM CONTENT_TREE WHERE LEFT_NR >= @L_NR AND RIGHT_NR <= @R_NR
83
// NEW: INSERT INTO WEBMAN_TEMP SELECT CONTENT_NODE_ID FROM CONTENT_TREE WHERE LEFT_NR >= ? AND RIGHT_NR <= ?
84
// CLASS: InsertTempTable1ContentNodeId.class
85
// PARAMS: LEFT_NR, RIGHT_NR
86
// [3]
87
queries[3].setQueryParams("LEFT_NR", leftNr);
88         queries[3].setQueryParams("RIGHT_NR", rightNr);
89         queries[3].execute();
90
91
92         // OLD: DELETE FROM CONTENT_SELECTION WHERE SELECTION_ID IN ( SELECT SELECTION_ID FROM DOCUMENT_CONTENT WHERE CONTENT_NODE_ID IN ( SELECT CONTENT_NODE_ID FROM #temp ) AND SELECTION_ID IS NOT NULL )
93
// NEW: DELETE FROM CONTENT_SELECTION WHERE SELECTION_ID IN ( SELECT SELECTION_ID FROM DOCUMENT_CONTENT WHERE CONTENT_NODE_ID IN ( SELECT CONTENT_NODE_ID FROM WEBMAN_TEMP ) AND SELECTION_ID IS NOT NULL )
94
// CLASS: DeleteFromContentSelection2.class
95
// [4]
96
queries[4].execute();
97
98
99         // OLD: DELETE FROM DOCUMENT_CONTENT WHERE CONTENT_NODE_ID IN ( SELECT CONTENT_NODE_ID FROM #temp )
100
// NEW: DELETE FROM DOCUMENT_CONTENT WHERE CONTENT_NODE_ID IN ( SELECT CONTENT_NODE_ID FROM WEBMAN_TEMP )
101
// CLASS: DeleteFromDocumentContent2.class
102
// [5]
103
queries[5].execute();
104
105         // Drop Table Webman_Temp
106
queries[6].execute();
107
108         // COMMIT TRANSACTION " +
109
if (isNotOpen)
110         {
111         aTKDBConnection.commitTransaction(); // commit all changes
112
}
113
114     }
115     catch(Throwable JavaDoc t)
116     {
117         TKDBManager.safeRollbackTransaction(t);
118     }
119     return hasResults();
120     }
121
122     public void initQuery(Connection con)
123     {
124     super.initQuery(con,
125             ISPREPARED, PARAMORDER, TYPES, SETRELEVANTS, null);
126     }
127 }
128
Popular Tags