Save This Page
Home » openjdk-7 » javax » management » [javadoc | source]
    1   /*
    2    * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   package javax.management;
   27   
   28   
   29   
   30   /**
   31    * This class is used by the query-building mechanism to represent
   32    * disjunctions of relational expressions.
   33    * @serial include
   34    *
   35    * @since 1.5
   36    */
   37   class OrQueryExp extends QueryEval implements QueryExp {
   38   
   39       /* Serial version */
   40       private static final long serialVersionUID = 2962973084421716523L;
   41   
   42       /**
   43        * @serial The left query expression
   44        */
   45       private QueryExp exp1;
   46   
   47       /**
   48        * @serial The right query expression
   49        */
   50       private QueryExp exp2;
   51   
   52   
   53       /**
   54        * Basic Constructor.
   55        */
   56       public OrQueryExp() {
   57       }
   58   
   59       /**
   60        * Creates a new OrQueryExp with the specified ValueExps
   61        */
   62       public OrQueryExp(QueryExp q1, QueryExp q2) {
   63           exp1 = q1;
   64           exp2 = q2;
   65       }
   66   
   67   
   68       /**
   69        * Returns the left query expression.
   70        */
   71       public QueryExp getLeftExp() {
   72           return exp1;
   73       }
   74   
   75       /**
   76        * Returns the right query expression.
   77        */
   78       public QueryExp getRightExp() {
   79           return exp2;
   80       }
   81   
   82       /**
   83        * Applies the OrQueryExp on a MBean.
   84        *
   85        * @param name The name of the MBean on which the OrQueryExp will be applied.
   86        *
   87        * @return  True if the query was successfully applied to the MBean, false otherwise.
   88        *
   89        *
   90        * @exception BadStringOperationException The string passed to the method is invalid.
   91        * @exception BadBinaryOpValueExpException The expression passed to the method is invalid.
   92        * @exception BadAttributeValueExpException The attribute value passed to the method is invalid.
   93        */
   94       public boolean apply(ObjectName name) throws BadStringOperationException,
   95           BadBinaryOpValueExpException, BadAttributeValueExpException,
   96           InvalidApplicationException {
   97           return exp1.apply(name) || exp2.apply(name);
   98       }
   99   
  100       /**
  101        * Returns a string representation of this OrQueryExp
  102        */
  103       @Override
  104       public String toString() {
  105           return "(" + exp1 + ") or (" + exp2 + ")";
  106       }
  107   
  108       @Override
  109       String toQueryString() {
  110           return parens(exp1) + " or " + parens(exp2);
  111       }
  112   
  113       // Add parentheses to avoid possible confusion.  If we have an expression
  114       // such as Query.or(Query.and(a, b), c), then we return
  115       // (a and b) or c
  116       // rather than just
  117       // a and b or c
  118       // In fact the precedence rules are such that the parentheses are not
  119       // strictly necessary, but omitting them would be confusing.
  120       private static String parens(QueryExp exp) {
  121           String s = Query.toString(exp);
  122           if (exp instanceof AndQueryExp)
  123               return "(" + s + ")";
  124           else
  125               return s;
  126       }
  127   }

Save This Page
Home » openjdk-7 » javax » management » [javadoc | source]