1 package de.webman.acl.db.queries.oracle; 2 3 import java.sql.Connection ; 4 import java.sql.Types ; 5 import com.teamkonzept.db.TKPrepQuery; 6 7 14 public class PolicySelectByContentTreeEvent 15 extends TKPrepQuery 16 { 17 18 20 public static final String [] ORDER = 21 { 22 "OBJECT_REFERENCE", 23 "WM_USER_ID", 24 "WM_CONTEXT_ID", 25 "OBJECT_TYPE", 26 "WM_EVENT_ID" 27 }; 28 29 public static final Object [][] TYPES = 30 { 31 {"WM_USER_ID", new Integer (Types.INTEGER)}, 32 {"WM_CONTEXT_ID", new Integer (Types.INTEGER)}, 33 {"OBJECT_REFERENCE", new Integer (Types.INTEGER)}, 34 {"OBJECT_TYPE", new Integer (Types.INTEGER)}, 35 {"WM_EVENT_ID", new Integer (Types.INTEGER)} 36 }; 37 38 public static final boolean[] RELEVANTS = 39 { 40 true 41 }; 42 43 public static final String SQL = (new StringBuffer ()).append("SELECT DISTINCT WM_POLICY_ID FROM ") 44 .append(" (SELECT P.WM_POLICY_ID, CT2.LEFT_NR ") 45 .append("FROM WM_POLICY P, CONTENT_TREE CT1, CONTENT_TREE CT2, WM_ROLE_TASK RT, WM_TASK T, WM_TASK_ACTION TA, WM_ACTION_EVENT AE ") 46 .append("WHERE ") 47 .append(" CT1.CONTENT_NODE_ID = ? AND ") 48 .append(" CT2.LEFT_NR <= CT1.LEFT_NR AND ") 49 .append(" CT2.RIGHT_NR >= CT1.RIGHT_NR AND ") 50 .append(" CT2.CONTENT_NODE_ID = P.OBJECT_REFERENCE AND ") 51 .append(" P.OBJECT_TYPE = ? AND ") 52 .append(" P.WM_USER_ID = ? AND ") 53 .append(" P.WM_CONTEXT_ID = ? AND ") 54 .append(" P.WM_ROLE_ID = RT.WM_ROLE_ID AND ") 55 .append(" RT.WM_TASK_ID = T.WM_TASK_ID AND ") 56 .append(" T.WM_CONTEXT_ID = P.WM_CONTEXT_ID AND ") 57 .append(" T.WM_TASK_ID = TA.WM_TASK_ID AND ") 58 .append(" TA.WM_ACTION_ID = AE.WM_ACTION_ID AND ") 59 .append(" AE.WM_EVENT_ID = ? ") 60 .append("ORDER BY CT2.LEFT_NR ASC)") 61 .toString(); 62 63 64 66 public void initQuery (Connection connection) 67 { 68 super.initQuery(connection, 69 true, 70 ORDER, 71 TYPES, 72 RELEVANTS, 73 SQL); 74 } 75 76 } 77 | Popular Tags |