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