1 /*
2 * $Header: /home/projects/jaxen/scm/jaxen/src/java/main/org/jaxen/saxpath/Operator.java,v 1.5 2006/02/05 21:47:42 elharo Exp $
3 * $Revision: 1.5 $
4 * $Date: 2006/02/05 21:47:42 $
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: Operator.java,v 1.5 2006/02/05 21:47:42 elharo Exp $
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><</code>
80 */
81 final static int LESS_THAN = 3;
82
83 /***
84 * The less-than-or-equal-to operator <code><=</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 }