001: /**
002: * The XMOJO Project 5
003: * Copyright © 2003 XMOJO.org. All rights reserved.
004:
005: * NO WARRANTY
006:
007: * BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
008: * THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
009: * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
010: * PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
011: * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
012: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
013: * TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
014: * LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
015: * REPAIR OR CORRECTION.
016:
017: * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
018: * ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
019: * THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
020: * GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
021: * USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
022: * DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
023: * PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
024: * EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
025: * SUCH DAMAGES.
026: **/package javax.management;
027:
028: /**
029: * Represents strings that are arguments to relational constraints.
030: * A <CODE>StringValueExp</CODE> may be used anywhere a <CODE>ValueExp</CODE>
031: * is required.
032: */
033: public class StringValueExp implements ValueExp {
034: private String val = null;
035:
036: private transient MBeanServer server = null;
037:
038: private StringValueExp v1 = null;
039:
040: private StringValueExp v2 = null;
041:
042: int type = -1;
043:
044: /**
045: * Constructs a StringValueExp with default val
046: */
047: public StringValueExp() {
048: }
049:
050: /**
051: * Creates a new <CODE>StringValueExp</CODE> representing the string
052: * literal val.
053: *
054: * @param val Creates a StringValueExp representing the string literal val
055: */
056: public StringValueExp(String val) {
057: this .val = val;
058: }
059:
060: //added for Query.plus(v1, v2)..
061: StringValueExp(StringValueExp v1, StringValueExp v2, int type) {
062: this .type = type;
063: this .v1 = v1;
064: this .v2 = v2;
065: }
066:
067: /**
068: * Returns the string represented by the <CODE>StringValueExp</CODE> instance.
069: *
070: * @return This returns the string represented by the StringValueExp instance.
071: */
072: public String getValue() {
073: return val;
074: }
075:
076: /**
077: * Applies the ValueExp on a MBean. Implements the method in the ValueExp.
078: *
079: * @param name The name of the MBean on which the ValueExp will be applied.
080: *
081: * @return The <CODE>ValueExp</CODE>.
082: *
083: * @exception BadStringOperationException This exception is thrown when
084: * an invalid string operation is passed to a method for
085: * constructing a query.
086: *
087: * @exception BadBinaryOpValueExpException This exception is thrown when
088: * an invalid expression is passed to a method for
089: * constructing a query.
090: *
091: * @exception BadAttributeValueExpException The BadAttributeValueExpException
092: * is thrown when an invalid MBean attribute is passed
093: * to a query constructing method.
094: *
095: * @exception InvalidApplicationException This exception is thrown when
096: * an attempt is made to apply either of the following:
097: * A subquery expression to an MBean
098: * A qualified attribute expression to an MBean of the wrong class
099: */
100: public ValueExp apply(ObjectName name)
101: throws BadStringOperationException,
102: BadBinaryOpValueExpException,
103: BadAttributeValueExpException, InvalidApplicationException {
104: return this ;
105: }
106:
107: /**
108: * Sets the MBeanServer on which the query is to be accessed.
109: *
110: * @param server - The MBeanServer on which the query is to be accessed
111: */
112: public void setMBeanServer(MBeanServer server) {
113: this .server = server;
114: }
115:
116: /**
117: * Returns the string representing the object.
118: * @return Returns the string representation of object
119: */
120: public String toString() {
121: return val;
122: }
123:
124: Object getObject() {
125: if (type == Query.PLUS) {
126: return (String) v1.getObject() + (String) v2.getObject();
127: }
128:
129: return val;
130: }
131: }//End of class StringValueExp.
|