001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package javax.management;
023:
024: /**
025: * An And Query Expression.<p>
026: *
027: * Returns true only when both expressions are true.
028: *
029: * <p><b>Revisions:</b>
030: * <p><b>20020314 Adrian Brock:</b>
031: * <ul>
032: * <li>Fix the human readable expression
033: * </ul>
034: * <p><b>20020317 Adrian Brock:</b>
035: * <ul>
036: * <li>Make queries thread safe
037: * </ul>
038: *
039: * @author <a href="mailto:Adrian.Brock@HappeningTimes.com">Adrian Brock</a>.
040: * @version $Revision: 57200 $
041: */
042: class AndQueryExp extends QueryEval implements QueryExp {
043: // Constants ---------------------------------------------------
044:
045: private static final long serialVersionUID = -1081892073854801359L;
046:
047: // Attributes --------------------------------------------------
048:
049: /**
050: * The first query expression
051: */
052: private QueryExp exp1;
053:
054: /**
055: * The second query expression
056: */
057: private QueryExp exp2;
058:
059: // Static ------------------------------------------------------
060:
061: // Constructors ------------------------------------------------
062:
063: public AndQueryExp() {
064: }
065:
066: /**
067: * Create a new AND query Expression
068: *
069: * @param first the first query expression
070: * @param second the second query expression
071: */
072: public AndQueryExp(QueryExp first, QueryExp second) {
073: this .exp1 = first;
074: this .exp2 = second;
075: }
076:
077: // Public ------------------------------------------------------
078:
079: // QueryExp implementation -------------------------------------
080:
081: public boolean apply(ObjectName name)
082: throws BadStringOperationException,
083: BadBinaryOpValueExpException,
084: BadAttributeValueExpException, InvalidApplicationException {
085: return exp1.apply(name) && exp2.apply(name);
086: }
087:
088: // Object overrides --------------------------------------------
089:
090: public String toString() {
091: return new String("(" + exp1.toString() + ") && ("
092: + exp2.toString())
093: + ")";
094: }
095:
096: // Protected ---------------------------------------------------
097:
098: // Private -----------------------------------------------------
099:
100: // Inner classes -----------------------------------------------
101: }
|