KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > db > queries > sitetree > GetStOpenPath


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/webman/mainint/db/queries/sitetree/Attic/GetStOpenPath.java,v 1.5 2036/02/08 19:13:59 markus Exp $
3  *
4  */

5 package com.teamkonzept.webman.mainint.db.queries.sitetree;
6
7 import java.sql.*;
8
9 import com.teamkonzept.db.*;
10
11 /*
12  * TKDBSiteTreeGetOpen
13  * gibt eine teilweise geoeffneten Baum zurueck
14  * Input: NODE_ID des zu oefneten Knotens
15  * Output: alles und eine NODE_ID
16  * wenn die NODE_ID = SITE_NODE_ID dann ist dieser Knoten oeffenbar, aber geschlossen
17  * wenn die NODE_ID = NULL dann ist dieser ein Blatt
18  * wenn die NODE_ID = SITE_NODE_PARENT dann ist dieser Knoten oeffenbar und offen
19  * @author
20  * @version
21  */

22 public class GetStOpenPath extends TKPrepQuery{
23
24     public final static boolean ISPREPARED = true;
25     public final static String JavaDoc[] PARAMORDER =
26     {
27             LEFT_NR, RIGHT_NR,
28             LEFT_NR, RIGHT_NR,
29             LEFT_NR, RIGHT_NR,
30             LEFT_NR, RIGHT_NR,
31             LEFT_NR, RIGHT_NR
32     };
33     public final static Object JavaDoc[][] PARAMTYPES = null;
34     public final static boolean[] SETRELEVANTS = { true };
35         
36     public final static String JavaDoc SQLSTRING =
37     
38     
39 /* GetStOpenPath liefert den Pfad zu einem Knoten, zusammen mit den */
40 /* Kindern erster Stufe der Knoten dieses Pfades (Hülle). An jedem Record ist die */
41 /* Spalte NODE_ID angefügt, mit einem der folgenden drei Fälle: */
42 /* 1. NULL falls der Knoten im Pfad oder der Hülle, und der NODE_TYPE < 3 */
43 /* 2. SITE_NODE_PARENT des Knotens, falls der Knoten im Pfad und NODE_TYPE >= 3 */
44 /* 3. SITE_NODE_ID des Knotens, falls er in der Hülle ist und NODE_TYPE >= 3 */
45
46
47 /* Fall 1: */
48  " SELECT SITE_NODE_ID, SITE_NODE_PARENT, SITE_NODE_TYPE, SITE_NODE_NAME, SITE_NODE_SHORTNAME, LEFT_NR, RIGHT_NR, PG_CONTENT_NODE, PG_SELECTION_ID , "
49  + DBStringFactory.nullValue() +" AS NODE_ID "
50  + " FROM SITE_TREE "
51  + " WHERE SITE_NODE_TYPE < 3 "
52  + " AND "
53  + " ( "
54  + " SITE_NODE_ID IN "
55  + " " /* Pfad */
56  + " ( "
57  + " SELECT SITE_NODE_ID "
58  + " FROM SITE_TREE "
59  + " WHERE LEFT_NR <= ? " /* ?LEFT_NR */
60  + " AND "
61  + " RIGHT_NR >= ? " /* ?RIGHT_NR */
62  + " ) "
63  + " " /* Hülle */
64  + " OR SITE_NODE_PARENT IN "
65  + " ( "
66  + " SELECT SITE_NODE_ID "
67  + " FROM SITE_TREE "
68  + " WHERE LEFT_NR <= ? " /* ?LEFT_NR */
69  + " AND "
70  + " RIGHT_NR >= ? " /* ?RIGHT_NR */
71  + " ) "
72  + " ) "
73 /* Fall 2: */
74  + " UNION "
75  + " SELECT SITE_NODE_ID, SITE_NODE_PARENT, SITE_NODE_TYPE, SITE_NODE_NAME, SITE_NODE_SHORTNAME, LEFT_NR, RIGHT_NR, PG_CONTENT_NODE, PG_SELECTION_ID, "
76  + " SITE_NODE_PARENT AS NODE_ID "
77  + " FROM SITE_TREE "
78  + " WHERE SITE_NODE_TYPE >= 3 "
79  + " AND "
80  + " ( "
81  + " SITE_NODE_ID IN "
82  + " " /* Pfad */
83  + " ( "
84  + " SELECT SITE_NODE_ID "
85  + " FROM SITE_TREE "
86  + " WHERE LEFT_NR <= ? " /* ?LEFT_NR */
87  + " AND "
88  + " RIGHT_NR >= ? " /* ?RIGHT_NR */
89  + " ) "
90  + " ) "
91 /* Fall 3 */
92  + " UNION "
93  + " SELECT SITE_NODE_ID, SITE_NODE_PARENT, SITE_NODE_TYPE, SITE_NODE_NAME, SITE_NODE_SHORTNAME, LEFT_NR, RIGHT_NR, PG_CONTENT_NODE, PG_SELECTION_ID, "
94  + " SITE_NODE_ID AS NODE_ID "
95  + " FROM SITE_TREE "
96  + " WHERE "
97  + " SITE_NODE_TYPE >= 3 "
98  + " AND "
99  + " ( "
100  + " SITE_NODE_PARENT IN "
101  + " " /* Hülle */
102  + " ( "
103  + " SELECT SITE_NODE_ID "
104  + " FROM SITE_TREE "
105  + " WHERE LEFT_NR <= ? " /* ?LEFT_NR */
106  + " AND "
107  + " RIGHT_NR >= ? " /* ?RIGHT_NR */
108  + " ) "
109  + " ) "
110  + " AND "
111  + " ( "
112  + " SITE_NODE_ID NOT IN "
113  + " " /* Pfad */
114  + " ( "
115  + " SELECT SITE_NODE_ID "
116  + " FROM SITE_TREE "
117  + " WHERE LEFT_NR <= ? " /* ?LEFT_NR */
118  + " AND "
119  + " RIGHT_NR >= ? " /* ?RIGHT_NR */
120  + " ) "
121  + " ) "
122  + " ORDER BY LEFT_NR ";
123     
124     public void initQuery(Connection con) {
125         super.initQuery(
126             con,
127             ISPREPARED,
128             PARAMORDER,
129             PARAMTYPES,
130             SETRELEVANTS,
131             SQLSTRING );
132     }
133 }
134
135
136
Popular Tags