Update of /cvsroot/graphl/graphl/src/org/mediavirus/graphl/jaxen
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv16361/src/org/mediavirus/graphl/jaxen
Modified Files:
GraphlXPath.java DocumentNavigator.java
Added Files:
GraphlContext.java
Log Message:
backup commit - first implementation of xpath-based structural filters
Index: GraphlXPath.java
===================================================================
RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/jaxen/GraphlXPath.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** GraphlXPath.java 30 Jun 2006 14:31:33 -0000 1.1
--- GraphlXPath.java 11 Jul 2006 18:34:31 -0000 1.2
***************
*** 5,13 ****
--- 5,17 ----
package org.mediavirus.graphl.jaxen;
+ import java.util.List;
+
import org.jaxen.BaseXPath;
+ import org.jaxen.Context;
import org.jaxen.JaxenException;
import org.jaxen.SimpleFunctionContext;
import org.jaxen.SimpleNamespaceContext;
import org.jaxen.XPathFunctionContext;
+ import org.jaxen.util.SingletonList;
import org.mediavirus.graphl.GraphlRegistry;
***************
*** 26,29 ****
--- 30,56 ----
this.setNamespaceContext(GraphlRegistry.instance().getVocabularyRegistry());
}
+
+ public List selectPaths(Object contextNode) throws JaxenException{
+ Context context;
+
+ if (contextNode instanceof Context) {
+ context = (Context) contextNode;
+ }
+ else {
+ context = new GraphlContext(getContextSupport(), true);
+
+ if (contextNode instanceof List) {
+ context.setNodeSet((List) contextNode);
+ }
+ else {
+ List list = new SingletonList(contextNode);
+ context.setNodeSet(list);
+ }
+ }
+
+ return selectNodesForContext( context );
+
+ }
+
}
Index: DocumentNavigator.java
===================================================================
RCS file: /cvsroot/graphl/graphl/src/org/mediavirus/graphl/jaxen/DocumentNavigator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DocumentNavigator.java 3 Jul 2006 15:26:32 -0000 1.2
--- DocumentNavigator.java 11 Jul 2006 18:34:31 -0000 1.3
***************
*** 15,18 ****
--- 15,19 ----
import org.jaxen.UnsupportedAxisException;
import org.jaxen.XPath;
+ import org.jaxen.expr.Step;
import org.jaxen.saxpath.Axis;
import org.jaxen.saxpath.SAXPathException;
***************
*** 213,215 ****
--- 214,226 ----
return matchingElements.iterator();
}
+
+ public void visit(Step step, Object context, List resultNodeSet) {
+ System.out.println("####");
+ System.out.println(" Visiting step: " + step.toString());
+ System.out.println(" Context: " + context.toString());
+ for (Object o : resultNodeSet) {
+ System.out.println(" Result: " + o.toString());
+ }
+
+ }
}
--- NEW FILE: GraphlContext.java ---
/*
* Created on 11.07.2006
*/
package org.mediavirus.graphl.jaxen;
import org.jaxen.Context;
import org.jaxen.ContextSupport;
public class GraphlContext extends Context {
protected boolean getPath = false;
public GraphlContext(ContextSupport contextSupport, boolean getPath) {
super(contextSupport);
this.getPath = getPath;
}
public boolean isGetPath() {
return getPath;
}
}
|