01: package com.teamkonzept.webman.refsel;
02:
03: import java.sql.*;
04: import java.util.*;
05:
06: import com.teamkonzept.db.*;
07: import com.teamkonzept.webman.*;
08: import de.webman.generator.*;
09: import com.teamkonzept.lib.*;
10: import com.teamkonzept.webman.refsel.db.queries.*;
11:
12: /*
13: * @author $Author: alex $
14: * @version $Revision: 1.8 $
15: */
16: public class TKWMFirstGranddaughtersRS implements TKWMReferenceSelector {
17:
18: public boolean checkSelection() {
19: return false;
20: }
21:
22: public String getSelectionData(TKHashtable params) {
23: return "";
24: }
25:
26: public TKVector getSelectionNodes(String selectionData,
27: int siteNodeId) throws SQLException {
28: TKVector nodes = new TKVector();
29:
30: TKQuery query = TKDBManager
31: .newQuery(TKWMDBGranddaughterNodes.class);
32: query.setQueryParams("SITE_NODE_ID", new Integer(siteNodeId));
33: query.execute();
34: ResultSet rs = query.fetchResultSet();
35:
36: if (rs != null) {
37: while (rs.next()) {
38: nodes
39: .addElement(new Integer(rs
40: .getInt("SITE_NODE_ID")));
41: }
42: }
43: return nodes;
44: }
45:
46: public TKDBResult getSelectionValues(String selectionData,
47: int siteNodeId) throws SQLException {
48: TKDBResult values = null;
49:
50: TKQuery query = TKDBManager.newQuery(TKWMDBRSSisters.class);
51: query.setQueryParams("SITE_NODE_ID", new Integer(siteNodeId));
52: query.execute();
53: ResultSet rs = query.fetchResultSet();
54:
55: if (rs != null) {
56: values = new TKDBResult(rs);
57: }
58: return values;
59: }
60:
61: public void reduceReferences(String selectionData,
62: TKVector allRefUrls, TKVector allRefDocs,
63: TKVector allRefNodes, GenNode currAnchor) {
64: Hashtable visitedDaughters = new TKHashtable();
65: for (int i = 0; i < allRefUrls.size();) {
66: GenNode currGrandChild = (GenNode) allRefNodes.elementAt(i);
67: GenNode currDaughter = currGrandChild.getParent();
68: if (visitedDaughters.get(currDaughter) != null) {
69: // Der Knoten wurde schon besucht -> rest loeschen
70: allRefUrls.removeElementAt(i);
71: if (allRefDocs != null)
72: allRefDocs.removeElementAt(i);
73: allRefNodes.removeElementAt(i);
74: } else {
75: visitedDaughters.put(currDaughter, currDaughter);
76: i++;
77: }
78: }
79: }
80:
81: }
|