View Javadoc
1   /*
2    * $Header$
3    * $Revision$
4    * $Date$
5    *
6    * ====================================================================
7    *
8    * Copyright 2000-2002 bob mcwhirter & James Strachan.
9    * All rights reserved.
10   *
11   *
12   * Redistribution and use in source and binary forms, with or without
13   * modification, are permitted provided that the following conditions are
14   * met:
15   * 
16   *   * Redistributions of source code must retain the above copyright
17   *     notice, this list of conditions and the following disclaimer.
18   * 
19   *   * Redistributions in binary form must reproduce the above copyright
20   *     notice, this list of conditions and the following disclaimer in the
21   *     documentation and/or other materials provided with the distribution.
22   * 
23   *   * Neither the name of the Jaxen Project nor the names of its
24   *     contributors may be used to endorse or promote products derived 
25   *     from this software without specific prior written permission.
26   * 
27   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
28   * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29   * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
30   * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
31   * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
33   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
34   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38   *
39   * ====================================================================
40   * This software consists of voluntary contributions made by many
41   * individuals on behalf of the Jaxen Project and was originally
42   * created by bob mcwhirter <bob@werken.com> and
43   * James Strachan <jstrachan@apache.org>.  For more information on the
44   * Jaxen Project, please see <http://www.jaxen.org/>.
45   *
46   * $Id$
47   */
48  
49  package org.jaxen.saxpath;
50  
51  /**
52   * Constants used to represent XPath operators.
53   */
54  public interface Operator
55  {
56      /**
57       * Indicates that we're passing through a grammar production without
58       * actually activating it. For example in the expression
59       * <code>1</code> is matches AdditiveExpr and MultiplicativeExpr in 
60       * the XPath grammar, even though it has neither a plus, 
61       * minus, multiplication, or other sign.
62       */
63      final static int NO_OP               =  0;
64      
65      // Equality
66      /**
67       * The equal to operator <code>=</code>. This is equivalent to <code>==</code>
68       * in Java. This is a comparison operator, not an assignment operator.
69       */
70      final static int EQUALS              =  1;
71      
72      /**
73       * The not equal to operator <code>!=</code>
74       */
75      final static int NOT_EQUALS          =  2;
76      
77      // Relational
78      /**
79       * The less-than operator <code>&lt;</code>
80       */
81      final static int LESS_THAN           =  3;
82      
83      /**
84       * The less-than-or-equal-to operator <code>&lt;=</code>
85       */
86      final static int LESS_THAN_EQUALS    =  4;
87  
88      /**
89       * The greater-than operator <code>></code>
90       */
91      final static int GREATER_THAN        =  5;
92  
93      /**
94       * The greater-than or equals operator <code>>=</code>
95       */
96      final static int GREATER_THAN_EQUALS =  6;
97      
98      // Additive
99  
100     /**
101      * The addition operator <code>+</code>
102      */
103     final static int ADD                 =  7;
104 
105     /**
106      * The subtraction operator <code>-</code>
107      */
108     final static int SUBTRACT            =  8;
109 
110     // Multiplicative
111 
112     /**
113      * The multiplication operator <code>*</code>
114      */
115     final static int MULTIPLY            =  9;
116 
117     /**
118      * The remainder operator <code>mod</code>. This is equivalent to
119      * <code>%</code> in Java. 
120      */
121     final static int MOD                 = 10;
122 
123     /**
124      * The floating point division operator <code>div</code>.  This is equivalent to
125      * <code>/</code> in Java. 
126      */
127     final static int DIV                 = 11;
128 
129     // Unary
130 
131     /**
132      * Unary <code>-</code>
133      */
134     final static int NEGATIVE            = 12;
135 }