View Javadoc

    1   /*
    2    * $Header: /home/projects/jaxen/scm/jaxen/src/java/main/org/jaxen/saxpath/Operator.java,v 1.4 2005/06/28 13:44:46 elharo Exp $
    3    * $Revision: 1.4 $
    4    * $Date: 2005/06/28 13:44:46 $
    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.4 2005/06/28 13:44:46 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>&lt;</code>
    93       */
    94      final static int LESS_THAN           =  3;
    95
    96      /***
    97       * The less-than-or-equal-to operator <code>&lt;=</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 }