01: /*
02: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/refsel/db/queries/TKWMDBRSSisters.java,v 1.7 2001/09/18 15:28:16 markus Exp $
03: *
04: */
05: package com.teamkonzept.webman.refsel.db.queries;
06:
07: import java.sql.*;
08:
09: import com.teamkonzept.db.*;
10: import com.teamkonzept.webman.mainint.DatabaseDefaults;
11:
12: /*
13: * TKWMDBRSSisters
14: * @author
15: * @version
16: */
17: public class TKWMDBRSSisters extends TKPrepQuery implements
18: DatabaseDefaults {
19:
20: public final static boolean IS_PREPARED = true;
21:
22: public final static String[] PARAM_ORDER = { SITE_NODE_ID,
23: SITE_NODE_ID, SITE_NODE_ID, SITE_NODE_ID, SITE_NODE_ID };
24:
25: public final static Object[][] PARAM_TYPES = null;
26:
27: public final static boolean[] SET_RELEVANTS = { true };
28:
29: public final static String SQL_STRING = " SELECT INNER.LEFT_NR LEFT_NR, INNER.DOCUMENT_SHORTNAME DOCUMENT_SHORTNAME, JOIN_NAME.DOCUMENT_NAME DOCUMENT_NAME "
30: + " FROM "
31: + " ( "
32: + " SELECT MAX(ST.LEFT_NR) LEFT_NR, SD.DOCUMENT_SHORTNAME "
33: + " FROM SITE_TREE ST, SITE_DOCUMENT SD "
34: + " WHERE "
35: + " ST.SITE_NODE_ID = SD.SITE_NODE_ID "
36: + " AND "
37: + " ( "
38: + " ST.LEFT_NR <= (SELECT LEFT_NR FROM SITE_TREE WHERE SITE_NODE_ID = ? ) " /* SITE_NODE_ID */
39: + " AND "
40: + " ST.RIGHT_NR >= (SELECT RIGHT_NR FROM SITE_TREE WHERE SITE_NODE_ID = ? ) " /* SITE_NODE_ID */
41: + " ) "
42: + " AND "
43: + " ( "
44: + " (SELECT COUNT(*) FROM SITE_TREE "
45: + " WHERE "
46: + " ( LEFT_NR BETWEEN ST.LEFT_NR AND (SELECT LEFT_NR FROM SITE_TREE WHERE SITE_NODE_ID = ? )) " /* SITE_NODE_ID */
47: + " AND "
48: + " ( RIGHT_NR BETWEEN (SELECT RIGHT_NR FROM SITE_TREE WHERE SITE_NODE_ID = ?) AND ST.RIGHT_NR) " /* SITE_NODE_ID */
49: + " ) "
50: + " BETWEEN SD.INHERIT_BEGIN_LEVEL AND SD.INHERIT_END_LEVEL "
51: + " OR "
52: + " SD.SITE_NODE_ID = ? " /* SITE_NODE_ID */
53: + " OR SD.INHERIT_END_LEVEL = "
54: + INHERIT_INFINITE
55: + " ) "
56: + " GROUP BY SD.DOCUMENT_SHORTNAME "
57: + " ) "
58: + " INNER, "
59: + " (SELECT LEFT_NR, DOCUMENT_NAME, DOCUMENT_SHORTNAME "
60: + " FROM SITE_DOCUMENT, SITE_TREE "
61: + " WHERE SITE_DOCUMENT.SITE_NODE_ID = SITE_TREE.SITE_NODE_ID "
62: + " ) "
63: + " JOIN_NAME "
64: + " WHERE "
65: + " INNER.LEFT_NR = JOIN_NAME.LEFT_NR "
66: + " AND "
67: + " INNER.DOCUMENT_SHORTNAME = JOIN_NAME.DOCUMENT_SHORTNAME "
68: + " ORDER BY LEFT_NR ";
69:
70: public void initQuery(Connection con) {
71: super.initQuery(con, IS_PREPARED, PARAM_ORDER, PARAM_TYPES,
72: SET_RELEVANTS, SQL_STRING);
73: }
74: }
|