org.apache.commons.jxpath.ri
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) $
Author:
Dmitri Plotnikov

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

Field Detail

NODE_TYPE_NODE

static final int NODE_TYPE_NODE
See Also:
Constant Field Values

NODE_TYPE_TEXT

static final int NODE_TYPE_TEXT
See Also:
Constant Field Values

NODE_TYPE_COMMENT

static final int NODE_TYPE_COMMENT
See Also:
Constant Field Values

NODE_TYPE_PI

static final int NODE_TYPE_PI
See Also:
Constant Field Values

AXIS_SELF

static final int AXIS_SELF
See Also:
Constant Field Values

AXIS_CHILD

static final int AXIS_CHILD
See Also:
Constant Field Values

AXIS_PARENT

static final int AXIS_PARENT
See Also:
Constant Field Values

AXIS_ANCESTOR

static final int AXIS_ANCESTOR
See Also:
Constant Field Values

AXIS_ATTRIBUTE

static final int AXIS_ATTRIBUTE
See Also:
Constant Field Values

AXIS_NAMESPACE

static final int AXIS_NAMESPACE
See Also:
Constant Field Values

AXIS_PRECEDING

static final int AXIS_PRECEDING
See Also:
Constant Field Values

AXIS_FOLLOWING

static final int AXIS_FOLLOWING
See Also:
Constant Field Values

AXIS_DESCENDANT

static final int AXIS_DESCENDANT
See Also:
Constant Field Values

AXIS_ANCESTOR_OR_SELF

static final int AXIS_ANCESTOR_OR_SELF
See Also:
Constant Field Values

AXIS_FOLLOWING_SIBLING

static final int AXIS_FOLLOWING_SIBLING
See Also:
Constant Field Values

AXIS_PRECEDING_SIBLING

static final int AXIS_PRECEDING_SIBLING
See Also:
Constant Field Values

AXIS_DESCENDANT_OR_SELF

static final int AXIS_DESCENDANT_OR_SELF
See Also:
Constant Field Values

FUNCTION_LAST

static final int FUNCTION_LAST
See Also:
Constant Field Values

FUNCTION_POSITION

static final int FUNCTION_POSITION
See Also:
Constant Field Values

FUNCTION_COUNT

static final int FUNCTION_COUNT
See Also:
Constant Field Values

FUNCTION_ID

static final int FUNCTION_ID
See Also:
Constant Field Values

FUNCTION_LOCAL_NAME

static final int FUNCTION_LOCAL_NAME
See Also:
Constant Field Values

FUNCTION_NAMESPACE_URI

static final int FUNCTION_NAMESPACE_URI
See Also:
Constant Field Values

FUNCTION_NAME

static final int FUNCTION_NAME
See Also:
Constant Field Values

FUNCTION_STRING

static final int FUNCTION_STRING
See Also:
Constant Field Values

FUNCTION_CONCAT

static final int FUNCTION_CONCAT
See Also:
Constant Field Values

FUNCTION_STARTS_WITH

static final int FUNCTION_STARTS_WITH
See Also:
Constant Field Values

FUNCTION_CONTAINS

static final int FUNCTION_CONTAINS
See Also:
Constant Field Values

FUNCTION_SUBSTRING_BEFORE

static final int FUNCTION_SUBSTRING_BEFORE
See Also:
Constant Field Values

FUNCTION_SUBSTRING_AFTER

static final int FUNCTION_SUBSTRING_AFTER
See Also:
Constant Field Values

FUNCTION_SUBSTRING

static final int FUNCTION_SUBSTRING
See Also:
Constant Field Values

FUNCTION_STRING_LENGTH

static final int FUNCTION_STRING_LENGTH
See Also:
Constant Field Values

FUNCTION_NORMALIZE_SPACE

static final int FUNCTION_NORMALIZE_SPACE
See Also:
Constant Field Values

FUNCTION_TRANSLATE

static final int FUNCTION_TRANSLATE
See Also:
Constant Field Values

FUNCTION_BOOLEAN

static final int FUNCTION_BOOLEAN
See Also:
Constant Field Values

FUNCTION_NOT

static final int FUNCTION_NOT
See Also:
Constant Field Values

FUNCTION_TRUE

static final int FUNCTION_TRUE
See Also:
Constant Field Values

FUNCTION_FALSE

static final int FUNCTION_FALSE
See Also:
Constant Field Values

FUNCTION_LANG

static final int FUNCTION_LANG
See Also:
Constant Field Values

FUNCTION_NUMBER

static final int FUNCTION_NUMBER
See Also:
Constant Field Values

FUNCTION_SUM

static final int FUNCTION_SUM
See Also:
Constant Field Values

FUNCTION_FLOOR

static final int FUNCTION_FLOOR
See Also:
Constant Field Values

FUNCTION_CEILING

static final int FUNCTION_CEILING
See Also:
Constant Field Values

FUNCTION_ROUND

static final int FUNCTION_ROUND
See Also:
Constant Field Values

FUNCTION_NULL

static final int FUNCTION_NULL
See Also:
Constant Field Values

FUNCTION_KEY

static final int FUNCTION_KEY
See Also:
Constant Field Values

FUNCTION_FORMAT_NUMBER

static final int FUNCTION_FORMAT_NUMBER
See Also:
Constant Field Values
Method Detail

number

java.lang.Object number(java.lang.String value)
Produces an EXPRESSION object that represents a numeric constant.

Parameters:
value - numeric String
Returns:
Object

literal

java.lang.Object literal(java.lang.String value)
Produces an EXPRESSION object that represents a string constant.

Parameters:
value - String literal
Returns:
Object

qname

java.lang.Object qname(java.lang.String prefix,
                       java.lang.String name)
Produces an QNAME that represents a name with an optional prefix.

Parameters:
prefix - String prefix
name - String name
Returns:
Object

sum

java.lang.Object sum(java.lang.Object[] arguments)
Produces an EXPRESSION object representing the sum of all argumens

Parameters:
arguments - are EXPRESSION objects
Returns:
Object

minus

java.lang.Object minus(java.lang.Object left,
                       java.lang.Object right)
Produces an EXPRESSION object representing left minus right

Parameters:
left - is an EXPRESSION object
right - is an EXPRESSION object
Returns:
Object

multiply

java.lang.Object multiply(java.lang.Object left,
                          java.lang.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

java.lang.Object divide(java.lang.Object left,
                        java.lang.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

java.lang.Object mod(java.lang.Object left,
                     java.lang.Object right)
Produces an EXPRESSION object representing left modulo right

Parameters:
left - is an EXPRESSION object
right - is an EXPRESSION object
Returns:
Object

lessThan

java.lang.Object lessThan(java.lang.Object left,
                          java.lang.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

java.lang.Object lessThanOrEqual(java.lang.Object left,
                                 java.lang.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

java.lang.Object greaterThan(java.lang.Object left,
                             java.lang.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

java.lang.Object greaterThanOrEqual(java.lang.Object left,
                                    java.lang.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

java.lang.Object equal(java.lang.Object left,
                       java.lang.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

java.lang.Object notEqual(java.lang.Object left,
                          java.lang.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

java.lang.Object minus(java.lang.Object argument)
Produces an EXPRESSION object representing unary negation of the argument

Parameters:
argument - is an EXPRESSION object
Returns:
Object

variableReference

java.lang.Object variableReference(java.lang.Object qname)
Produces an EXPRESSION object representing variable reference

Parameters:
qname - is a QNAME object
Returns:
Object

function

java.lang.Object function(int code,
                          java.lang.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

java.lang.Object function(java.lang.Object name,
                          java.lang.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

java.lang.Object and(java.lang.Object[] arguments)
Produces an EXPRESSION object representing logical conjunction of all arguments

Parameters:
arguments - are EXPRESSION objects
Returns:
Object

or

java.lang.Object or(java.lang.Object[] arguments)
Produces an EXPRESSION object representing logical disjunction of all arguments

Parameters:
arguments - are EXPRESSION objects
Returns:
Object

union

java.lang.Object union(java.lang.Object[] arguments)
Produces an EXPRESSION object representing union of all node sets

Parameters:
arguments - are EXPRESSION objects
Returns:
Object

nodeNameTest

java.lang.Object nodeNameTest(java.lang.Object qname)
Produces a NODE_TEST object that represents a node name test.

Parameters:
qname - is a QNAME object
Returns:
Object

nodeTypeTest

java.lang.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

java.lang.Object processingInstructionTest(java.lang.String instruction)
Produces a NODE_TEST object that represents a processing instruction test.

Parameters:
instruction - is a NODE_TEST object
Returns:
Object

step

java.lang.Object step(int axis,
                      java.lang.Object nodeTest,
                      java.lang.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

java.lang.Object locationPath(boolean absolute,
                              java.lang.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

java.lang.Object expressionPath(java.lang.Object expression,
                                java.lang.Object[] predicates,
                                java.lang.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


Copyright © 2001-2011 Apache Software Foundation. All Rights Reserved.