1 package com.teamkonzept.webman.mainint.db.queries; 2 3 import java.sql.*; 4 import java.util.Enumeration ; 5 import com.teamkonzept.db.*; 6 import com.teamkonzept.webman.mainint.db.queries.content.*; 7 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 8 9 16 public class TKDBContentTreeInsertNode extends TKExtendedPrepQuery 17 { 18 19 public final static boolean isPrepared = true; 20 21 public final static String [] paramOrder = { "NODE_ID", 22 "CONTENT_NODE_NAME", "CONTENT_NODE_SHORTNAME", 23 "CONTENT_NODE_TYPE", "CONTENT_FORM", 24 "TREE_ID", "PROTOTYPE_ID" 25 }; 26 27 public final static Object [][] types = 28 { {"CONTENT_NODE_NAME", new Integer (Types.VARCHAR)}, 29 {"CONTENT_NODE_SHORTNAME", new Integer (Types.VARCHAR)} 30 }; 31 32 public final static boolean[] setRelevants = { true }; 33 34 87 88 protected static Class [] queryClasses = { 89 SelectRightNrFromContentTree.class, 90 UpdateContentTreeRightNrEqual.class, 91 UpdateContentTreeLeftnrGreater.class, 92 SelectMaxContentTree.class, 93 InsertContentTreePrototype.class, 94 SelectContentTree.class 95 }; 96 97 public boolean execute() 98 { 99 try 100 { 101 102 init(queryClasses); 104 Object nid = queryParams.get("NODE_ID"); 105 106 boolean isNotOpen = aTKDBConnection.isAutoCommit(); 107 if (isNotOpen) 108 { 109 TKDBManager.beginTransaction(); 110 } 111 112 queries[0].setQueryParams("NODE_ID", nid); 114 queries[0].execute(); 115 Object prNr = null; 116 ResultSet rs = queries[0].fetchResultSet(); 117 if (rs != null && rs.next()) 118 { 119 prNr = rs.getObject(1); 120 } 121 122 queries[1].setQueryParams("PR_NR", prNr); 124 queries[1].execute(); 125 126 queries[2].setQueryParams("PR_NR", prNr); 128 queries[2].execute(); 129 130 Object id = null; 132 Integer prNrPlusOne = null; 133 queries[3].execute(); 134 rs = queries[3].fetchResultSet(); 135 if (rs != null && rs.next()) 136 { 137 id = rs.getObject(1); 138 } 139 140 if (prNr != null && prNr instanceof Number ) 141 { 142 prNrPlusOne = new Integer (((Number ) prNr).intValue() + 1); 143 } 144 145 queries[4].setQueryParams("ID", id); 149 queries[4].setQueryParams("PR_NR", prNr); 150 queries[4].setQueryParams("PR_NR_PLUS_ONE", prNrPlusOne); 151 queries[4].setQueryParams("NODE_ID", queryParams.get("NODE_ID")); 152 queries[4].setQueryParams("CONTENT_NODE_NAME", 153 queryParams.get("CONTENT_NODE_NAME")); 154 queries[4].setQueryParams("CONTENT_NODE_SHORTNAME", 155 queryParams. 156 get("CONTENT_NODE_SHORTNAME")); 157 queries[4].setQueryParams("CONTENT_NODE_TYPE", 158 queryParams.get("CONTENT_NODE_TYPE")); 159 queries[4].setQueryParams("CONTENT_FORM", 160 queryParams.get("CONTENT_FORM")); 161 queries[4].setQueryParams("TREE_ID", queryParams.get("TREE_ID")); 162 queries[4].setQueryParams("PROTOTYPE_ID", 163 queryParams.get("PROTOTYPE_ID")); 164 queries[4].execute(); 165 166 if (isNotOpen) 167 { 168 TKDBManager.commitTransaction(); 169 } 170 171 queries[5].setQueryParams("ID", id); 175 queries[5].execute(); 176 addResult(queries[5].fetchResultSet()); 177 178 } 179 catch(Throwable t) 180 { 181 TKDBManager.safeRollbackTransaction(t); 182 } 183 return hasResults(); 184 } 185 186 public void initQuery(Connection con) 187 { 188 super.initQuery(con, 189 isPrepared, paramOrder, types, setRelevants, null); 190 } 191 } 192 | Popular Tags |