froehlich 01/11/12 10:09:43 Modified: apps/db/src/java/org/apache/avalon/db/basic/actions BasicSelect.java Log: Revision Changes Path 1.10 +44 -34 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java Index: BasicSelect.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- BasicSelect.java 2001/11/12 14:04:40 1.9 +++ BasicSelect.java 2001/11/12 18:09:43 1.10 @@ -17,7 +17,10 @@ import org.apache.avalon.db.basic.data.BasicRow; import org.apache.avalon.db.basic.results.BasicColumns; import org.apache.avalon.db.basic.results.BasicRowSet; +import org.apache.avalon.db.basic.parser.BasicLXSQLParser; import org.apache.avalon.db.utils.RhinoHelper; +import org.apache.avalon.db.transport.SelectRequest; +import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node; @@ -62,7 +65,7 @@ String[] tablenames; Object[] selectedrow = null; - System.out.println("execute(): select"); + System.out.println("execute(): select without params"); if(true) { cols = parseSelect(mRootElement); tablenames = parseFrom(mRootElement); @@ -171,49 +174,58 @@ } private StringBuffer parseWhereRoot(Element rootElement) { + System.out.println("Enter parseWhereRoot()"); StringBuffer sb = new StringBuffer(); + Element whereElement = null; + NodeList subRootNodes = this.getSubRootNodes(rootElement); for (int i=0; i < subRootNodes.getLength(); i++) { if(subRootNodes.item(i).getNodeName().equals("where")) { System.out.println("parseWhereRoot(): found where"); - this.parseWhereTerm((Element)subRootNodes.item(i).getFirstChild(),sb); + whereElement = (Element)subRootNodes.item(i); } } + this.parseWhereTerm((Element)whereElement.getFirstChild(),sb); + System.out.println("parseWhereRoot(): END"); + System.out.println("sb=" + sb); return sb; } - private StringBuffer parseWhereTerm(Element element, StringBuffer sb) { - try { - System.out.println("Enter parseWhereTerm()"); - if(element != null) { - sb.append("{\n"); - if(element.getTagName().equals("and")) { - System.out.println("parseWhereTerm(): found and"); - parseWhereAndTerm(element.getChildNodes(),sb); - } else if(element.getTagName().equals("or")) { - System.out.println("parseWhereTerm(): found or"); - parseWhereOrTerm(element.getChildNodes(),sb); - } else if(element.getTagName().equals("condition")) { - System.out.println("parseWhereTerm(): found condition"); - //parseWhereConditionTerm(element,sb); - } - sb.append("}\n"); + private void parseWhereTerm(Element element, StringBuffer sb) { + System.out.println("Enter parseWhereTerm()"); + sb.append("{\n"); + if(element != null) { + System.out.println("Element != null " + element); + if(element.getTagName().equals("and")) { + System.out.println("parseWhereTerm(): found and"); + parseWhereAndTerm(element.getChildNodes(),sb); + } else if(element.getTagName().equals("or")) { + System.out.println("parseWhereTerm(): found or"); + parseWhereOrTerm(element.getChildNodes(),sb); + } else if(element.getTagName().equals("condition")) { + System.out.println("parseWhereTerm(): found condition"); + parseWhereConditionTerm(element,sb); + } else { + return; } - System.out.println("sb=" + sb.toString()); - } catch (Exception e) { - e.printStackTrace(); - } - return sb; + } else { + System.out.println("Element == null " + element); + System.out.println("parseWhereTerm after if"); + return; + } + //System.exit(0); + //System.out.println("sb=" + sb.toString()); + System.out.println("parseWhereTerm at the end"); + sb.append("}\n"); + return; } private void parseWhereAndTerm(NodeList nodes, StringBuffer sb) { try { - System.out.println("parseWhereAndTerm() nodes=" + nodes); - System.out.println("nodes.getLength()=" + nodes.getLength()); - for(int i=-1;i<nodes.getLength();i++) { - System.out.println("parseWhereAndTerm(): found and"); - sb.append("&\n"); + for(int i=0; i<nodes.getLength(); i++) { + System.out.println("Looping and"); parseWhereTerm((Element)nodes.item(i),sb); + sb.append("&\n"); } } catch(Exception e) { e.printStackTrace(); @@ -222,11 +234,10 @@ private void parseWhereOrTerm(NodeList nodes, StringBuffer sb) { try { - System.out.println("parseWhereOrTerm() nodes=" + nodes); - for(int i=0;i<nodes.getLength();i++) { - System.out.println("parseWhereOrTerm(): found or"); - sb.append("|\n"); + for(int i=0; i<nodes.getLength(); i++) { + System.out.println("Looping or"); parseWhereTerm((Element)nodes.item(i),sb); + sb.append("|\n"); } } catch(Exception e) { e.printStackTrace(); @@ -235,11 +246,10 @@ private void parseWhereConditionTerm(Element element, StringBuffer sb) { try { - System.out.println("parseWhereConditionTerm(): found condition"); Node nextSibling = (Node)element.getNextSibling(); - parseWhereTerm((Element)nextSibling,sb); sb.append(element.getAttribute("expr") + "\n"); + parseWhereTerm((Element)nextSibling,sb); } catch(Exception e) { e.printStackTrace(); }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>