Home » commons-jxpath-1.3-src » org.apache.commons.jxpath.ri » [javadoc | source]
org.apache.commons.jxpath.ri
public interface: Compiler [javadoc | source]

All Known Implementing Classes:
    TreeCompiler

The Compiler APIs are completely agnostic to the actual types of objects produced and consumed by the APIs. Arguments and return values are declared as java.lang.Object.

Since objects returned by Compiler methods are passed as arguments to other Compiler methods, the descriptions of these methods use virtual types. There are four virtual object types: EXPRESSION, QNAME, STEP and NODE_TEST.

The following example illustrates this notion. This sequence compiles the xpath "foo[round(1 div 2)]/text()":

     Object qname1 = compiler.qname(null, "foo")
     Object expr1 = compiler.number("1");
     Object expr2 = compiler.number("2");
     Object expr3 = compiler.div(expr1, expr2);
     Object expr4 = compiler.
             coreFunction(Compiler.FUNCTION_ROUND, new Object[]{expr3});
     Object test1 = compiler.nodeNameTest(qname1);
     Object step1 = compiler.
             step(Compiler.AXIS_CHILD, test1, new Object[]{expr4});
     Object test2 = compiler.nodeTypeTest(Compiler.NODE_TYPE_TEXT);
     Object step2 = compiler.nodeTypeTest(Compiler.AXIS_CHILD, test2, null);
     Object expr5 = compiler.locationPath(false, new Object[]{step1, step2});
Field Summary
public static final  int NODE_TYPE_NODE     
public static final  int NODE_TYPE_TEXT     
public static final  int NODE_TYPE_COMMENT     
public static final  int NODE_TYPE_PI     
public static final  int AXIS_SELF     
public static final  int AXIS_CHILD     
public static final  int AXIS_PARENT     
public static final  int AXIS_ANCESTOR     
public static final  int AXIS_ATTRIBUTE     
public static final  int AXIS_NAMESPACE     
public static final  int AXIS_PRECEDING     
public static final  int AXIS_FOLLOWING     
public static final  int AXIS_DESCENDANT     
public static final  int AXIS_ANCESTOR_OR_SELF     
public static final  int AXIS_FOLLOWING_SIBLING     
public static final  int AXIS_PRECEDING_SIBLING     
public static final  int AXIS_DESCENDANT_OR_SELF     
public static final  int FUNCTION_LAST     
public static final  int FUNCTION_POSITION     
public static final  int FUNCTION_COUNT     
public static final  int FUNCTION_ID     
public static final  int FUNCTION_LOCAL_NAME     
public static final  int FUNCTION_NAMESPACE_URI     
public static final  int FUNCTION_NAME     
public static final  int FUNCTION_STRING     
public static final  int FUNCTION_CONCAT     
public static final  int FUNCTION_STARTS_WITH     
public static final  int FUNCTION_CONTAINS     
public static final  int FUNCTION_SUBSTRING_BEFORE     
public static final  int FUNCTION_SUBSTRING_AFTER     
public static final  int FUNCTION_SUBSTRING     
public static final  int FUNCTION_STRING_LENGTH     
public static final  int FUNCTION_NORMALIZE_SPACE     
public static final  int FUNCTION_TRANSLATE     
public static final  int FUNCTION_BOOLEAN     
public static final  int FUNCTION_NOT     
public static final  int FUNCTION_TRUE     
public static final  int FUNCTION_FALSE     
public static final  int FUNCTION_LANG     
public static final  int FUNCTION_NUMBER     
public static final  int FUNCTION_SUM     
public static final  int FUNCTION_FLOOR     
public static final  int FUNCTION_CEILING     
public static final  int FUNCTION_ROUND     
public static final  int FUNCTION_NULL     
public static final  int FUNCTION_KEY     
public static final  int FUNCTION_FORMAT_NUMBER     
Method from org.apache.commons.jxpath.ri.Compiler Summary:
and,   divide,   equal,   expressionPath,   function,   function,   greaterThan,   greaterThanOrEqual,   lessThan,   lessThanOrEqual,   literal,   locationPath,   minus,   minus,   mod,   multiply,   nodeNameTest,   nodeTypeTest,   notEqual,   number,   or,   processingInstructionTest,   qname,   step,   sum,   union,   variableReference
Method from org.apache.commons.jxpath.ri.Compiler Detail:
 public Object and(Object[] arguments)
    Produces an EXPRESSION object representing logical conjunction of all arguments
 public Object divide(Object left,
    Object right)
    Produces an EXPRESSION object representing left divided by right
 public Object equal(Object left,
    Object right)
    Produces an EXPRESSION object representing the comparison: left equals to right
 public Object expressionPath(Object expression,
    Object[] predicates,
    Object[] steps)
    Produces an EXPRESSION object representing a filter expression
 public Object function(int code,
    Object[] args)
    Produces an EXPRESSION object representing the computation of a core function with the supplied arguments.
 public Object function(Object name,
    Object[] args)
    Produces an EXPRESSION object representing the computation of a library function with the supplied arguments.
 public Object greaterThan(Object left,
    Object right)
    Produces an EXPRESSION object representing the comparison: left greater than right
 public Object greaterThanOrEqual(Object left,
    Object right)
    Produces an EXPRESSION object representing the comparison: left greater than or equal to right
 public Object lessThan(Object left,
    Object right)
    Produces an EXPRESSION object representing the comparison: left less than right
 public Object lessThanOrEqual(Object left,
    Object right)
    Produces an EXPRESSION object representing the comparison: left less than or equal to right
 public Object literal(String value)
    Produces an EXPRESSION object that represents a string constant.
 public Object locationPath(boolean absolute,
    Object[] steps)
    Produces an EXPRESSION object representing a location path
 public Object minus(Object argument)
    Produces an EXPRESSION object representing unary negation of the argument
 public Object minus(Object left,
    Object right)
    Produces an EXPRESSION object representing left minus right
 public Object mod(Object left,
    Object right)
    Produces an EXPRESSION object representing left modulo right
 public Object multiply(Object left,
    Object right)
    Produces an EXPRESSION object representing left multiplied by right
 public Object nodeNameTest(Object qname)
    Produces a NODE_TEST object that represents a node name test.
 public Object nodeTypeTest(int nodeType)
    Produces a NODE_TEST object that represents a node type test.
 public Object notEqual(Object left,
    Object right)
    Produces an EXPRESSION object representing the comparison: left is not equal to right
 public Object number(String value)
    Produces an EXPRESSION object that represents a numeric constant.
 public Object or(Object[] arguments)
    Produces an EXPRESSION object representing logical disjunction of all arguments
 public Object processingInstructionTest(String instruction)
    Produces a NODE_TEST object that represents a processing instruction test.
 public Object qname(String prefix,
    String name)
    Produces an QNAME that represents a name with an optional prefix.
 public Object step(int axis,
    Object nodeTest,
    Object[] predicates)
    Produces a STEP object that represents a node test.
 public Object sum(Object[] arguments)
    Produces an EXPRESSION object representing the sum of all argumens
 public Object union(Object[] arguments)
    Produces an EXPRESSION object representing union of all node sets
 public Object variableReference(Object qName)
    Produces an EXPRESSION object representing variable reference