Interface Compiler

All Known Implementing Classes:
TreeCompiler

public interface Compiler
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});
 
Version:
$Revision: 652845 $ $Date: 2008-05-02 12:46:46 -0500 (Fri, 02 May 2008) $
  • Field Details

  • Method Details

    • number

      Object number(String value)
      Produces an EXPRESSION object that represents a numeric constant.
      Parameters:
      value - numeric String
      Returns:
      Object
    • literal

      Object literal(String value)
      Produces an EXPRESSION object that represents a string constant.
      Parameters:
      value - String literal
      Returns:
      Object
    • qname

      Object qname(String prefix, String name)
      Produces an QNAME that represents a name with an optional prefix.
      Parameters:
      prefix - String prefix
      name - String name
      Returns:
      Object
    • sum

      Object sum(Object[] arguments)
      Produces an EXPRESSION object representing the sum of all argumens
      Parameters:
      arguments - are EXPRESSION objects
      Returns:
      Object
    • minus

      Object minus(Object left, Object right)
      Produces an EXPRESSION object representing left minus right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • multiply

      Object multiply(Object left, Object right)
      Produces an EXPRESSION object representing left multiplied by right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • divide

      Object divide(Object left, Object right)
      Produces an EXPRESSION object representing left divided by right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • mod

      Object mod(Object left, Object right)
      Produces an EXPRESSION object representing left modulo right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • lessThan

      Object lessThan(Object left, Object right)
      Produces an EXPRESSION object representing the comparison: left less than right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • lessThanOrEqual

      Object lessThanOrEqual(Object left, Object right)
      Produces an EXPRESSION object representing the comparison: left less than or equal to right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • greaterThan

      Object greaterThan(Object left, Object right)
      Produces an EXPRESSION object representing the comparison: left greater than right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • greaterThanOrEqual

      Object greaterThanOrEqual(Object left, Object right)
      Produces an EXPRESSION object representing the comparison: left greater than or equal to right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • equal

      Object equal(Object left, Object right)
      Produces an EXPRESSION object representing the comparison: left equals to right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • notEqual

      Object notEqual(Object left, Object right)
      Produces an EXPRESSION object representing the comparison: left is not equal to right
      Parameters:
      left - is an EXPRESSION object
      right - is an EXPRESSION object
      Returns:
      Object
    • minus

      Object minus(Object argument)
      Produces an EXPRESSION object representing unary negation of the argument
      Parameters:
      argument - is an EXPRESSION object
      Returns:
      Object
    • variableReference

      Object variableReference(Object qname)
      Produces an EXPRESSION object representing variable reference
      Parameters:
      qname - is a QNAME object
      Returns:
      Object
    • function

      Object function(int code, Object[] args)
      Produces an EXPRESSION object representing the computation of a core function with the supplied arguments.
      Parameters:
      code - is one of FUNCTION_... constants
      args - are EXPRESSION objects
      Returns:
      Object
    • function

      Object function(Object name, Object[] args)
      Produces an EXPRESSION object representing the computation of a library function with the supplied arguments.
      Parameters:
      name - is a QNAME object (function name)
      args - are EXPRESSION objects
      Returns:
      Object
    • and

      Object and(Object[] arguments)
      Produces an EXPRESSION object representing logical conjunction of all arguments
      Parameters:
      arguments - are EXPRESSION objects
      Returns:
      Object
    • or

      Object or(Object[] arguments)
      Produces an EXPRESSION object representing logical disjunction of all arguments
      Parameters:
      arguments - are EXPRESSION objects
      Returns:
      Object
    • union

      Object union(Object[] arguments)
      Produces an EXPRESSION object representing union of all node sets
      Parameters:
      arguments - are EXPRESSION objects
      Returns:
      Object
    • nodeNameTest

      Object nodeNameTest(Object qname)
      Produces a NODE_TEST object that represents a node name test.
      Parameters:
      qname - is a QNAME object
      Returns:
      Object
    • nodeTypeTest

      Object nodeTypeTest(int nodeType)
      Produces a NODE_TEST object that represents a node type test.
      Parameters:
      nodeType - is a NODE_TEST object
      Returns:
      Object
    • processingInstructionTest

      Object processingInstructionTest(String instruction)
      Produces a NODE_TEST object that represents a processing instruction test.
      Parameters:
      instruction - is a NODE_TEST object
      Returns:
      Object
    • step

      Object step(int axis, Object nodeTest, Object[] predicates)
      Produces a STEP object that represents a node test.
      Parameters:
      axis - is one of the AXIS_... constants
      nodeTest - is a NODE_TEST object
      predicates - are EXPRESSION objects
      Returns:
      Object
    • locationPath

      Object locationPath(boolean absolute, Object[] steps)
      Produces an EXPRESSION object representing a location path
      Parameters:
      absolute - indicates whether the path is absolute
      steps - are STEP objects
      Returns:
      Object
    • expressionPath

      Object expressionPath(Object expression, Object[] predicates, Object[] steps)
      Produces an EXPRESSION object representing a filter expression
      Parameters:
      expression - is an EXPRESSION object
      predicates - are EXPRESSION objects
      steps - are STEP objects
      Returns:
      Object