User: ejort
Date: 02/02/17 04:41:52
Modified: src/main/javax/management QueryExp.java ValueExp.java
Added: src/main/javax/management AttributeValueExp.java
BinaryOpValueExp.java BooleanValueExp.java
NumberValueExp.java Query.java QueryEval.java
QueryExpSupport.java SingleValueExpSupport.java
StringValueExp.java ValueExpSupport.java
Log:
Committed start of query support so I can do a full co
Revision Changes Path
1.2 +49 -11 jmx/src/main/javax/management/QueryExp.java
Index: QueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/QueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- QueryExp.java 3 Dec 2001 01:42:58 -0000 1.1
+++ QueryExp.java 17 Feb 2002 12:41:52 -0000 1.2
@@ -1,18 +1,56 @@
/*
- * LGPL
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
*/
package javax.management;
-public interface QueryExp extends java.io.Serializable {
+import java.io.Serializable;
+/**
+ * A query expression.<p>
+ *
+ * An implementation of this interface can be used in
+ * a query. Multiple query expressions can be used together to form
+ * a more complex query.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
+ * @version $Revision: 1.2 $
+ */
+public interface QueryExp
+ extends Serializable
+{
+ // Constants ---------------------------------------------------
+
+ // Public ------------------------------------------------------
+
+ /**
+ * Apply this query expression to an MBean.
+ *
+ * @param name the object name of the mbean
+ * @return true or false as the result of the query expression.
+ * @exception BadStringOperationException when an invalid string operation
+ * is used during query construction
+ * @exception BadBinaryOpValueExpException when an invalid binary operation
+ * is used during query construction
+ * @exception BadAttributeValueExpException when an invalid MBean attribute
+ * is used during query construction
+ * @exception InvalidApplicationException when trying to apply a subquery
+ * expression to an MBean or an attribute expression to an
+ * MBean of the wrong class.
+ */
public boolean apply(ObjectName name)
- throws BadStringOperationException,
- BadBinaryOpValueExpException,
- BadAttributeValueExpException,
- InvalidApplicationException;
-
- public void setMBeanServer(MBeanServer s);
-
-
-
+ throws BadStringOperationException,
+ BadBinaryOpValueExpException,
+ BadAttributeValueExpException,
+ InvalidApplicationException;
+
+ /**
+ * Set the MBeanServer for this query. Only MBeans registered in
+ * this server can be used in queries.
+ *
+ * @param server the MBeanServer
+ */
+ public void setMBeanServer(MBeanServer server);
}
1.2 +43 -7 jmx/src/main/javax/management/ValueExp.java
Index: ValueExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/ValueExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ValueExp.java 3 Dec 2001 01:42:58 -0000 1.1
+++ ValueExp.java 17 Feb 2002 12:41:52 -0000 1.2
@@ -1,15 +1,51 @@
/*
- * LGPL
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
*/
package javax.management;
-public interface ValueExp extends java.io.Serializable {
+import java.io.Serializable;
- public ValueExp apply(ObjectName name)
- throws BadStringOperationException,
- BadBinaryOpValueExpException,
- BadAttributeValueExpException,
- InvalidApplicationException;
+/**
+ * A value expression.<p>
+ *
+ * Implementations of this interface represent arguments to expressions.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
+ * @version $Revision: 1.2 $
+ */
+public interface ValueExp
+ extends Serializable
+{
+ /**
+ * Apply this value expression to an MBean.
+ *
+ * @param name the object name of the mbean
+ * @return this value expression
+ * @exception BadStringOperationException when an invalid string operation
+ * is used during query construction
+ * @exception BadBinaryOpValueExpException when an invalid binary operation
+ * is used during query construction
+ * @exception BadAttributeValueExpException when an invalid MBean attribute
+ * is used during query construction
+ * @exception InvalidApplicationException when trying to apply a subquery
+ * expression to an MBean or an attribute expression to an
+ * MBean of the wrong class.
+ */
+ public ValueExp apply(ObjectName name)
+ throws BadStringOperationException,
+ BadBinaryOpValueExpException,
+ BadAttributeValueExpException,
+ InvalidApplicationException;
+ /**
+ * Set the MBeanServer for this expression. Only MBeans registered in
+ * this server can be used in queries.
+ *
+ * @param server the MBeanServer
+ */
+ public void setMBeanServer(MBeanServer server);
}
1.1 jmx/src/main/javax/management/AttributeValueExp.java
Index: AttributeValueExp.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
/**
* A String that is an arguement to a query.<p>
*
* There is some duplication of implementation because of the poor
* design.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
public class AttributeValueExp
implements ValueExp
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* The attribute name
*/
private String value;
/**
* The MBean server for this expression
*/
private MBeanServer server;
// Static -----------------------------------------------------
// Constructors ------------------------------------------------
/**
* Construct an attribute value expression for the null attribute name
*/
public AttributeValueExp()
{
}
/**
* Construct an attribute value expression for the passed attribute name
*
* @param value the attribute name
*/
public AttributeValueExp(String value)
{
this.value = value;
}
// Public ------------------------------------------------------
/**
* Get the attribute name.
*
* @return the attribute name
*/
public String getAttributeName()
{
return value;
}
// ValueExp Implementation -------------------------------------
public ValueExp apply(ObjectName name)
throws BadStringOperationException,
BadBinaryOpValueExpException,
BadAttributeValueExpException,
InvalidApplicationException
{
Object object = getAttribute(name);
if (object instanceof String)
return new StringValueExp((String) object);
if (object instanceof Boolean)
return new BooleanValueExp((Boolean) object);
if (object instanceof Number)
return new NumberValueExp((Number) object);
//TODO boolean, int, long, float, double
throw new BadAttributeValueExpException(object);
}
public void setMBeanServer(MBeanServer server)
{
this.server = server;
}
// Object overrides --------------------------------------------
public String toString()
{
return value;
}
// Protected ---------------------------------------------------
/**
* Get the value of the attribute for a given object name
*
* @param the object name
* @return the value of the attribute
*/
protected Object getAttribute(ObjectName name)
{
try
{
return server.getAttribute(name, value);
}
catch (Exception e)
{
// TODO: What happens now?
return null;
}
}
// Package Private ---------------------------------------------
// Private -----------------------------------------------------
// Inner Classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/BinaryOpValueExp.java
Index: BinaryOpValueExp.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
/**
* A Binary Operation that is an arguement to a query.<p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
/*package*/ class BinaryOpValueExp
extends ValueExpSupport
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* The operation
*/
int operation;
/**
* The first expression
*/
ValueExp first;
/**
* The second expression
*/
ValueExp second;
// Static -----------------------------------------------------
// Constructors ------------------------------------------------
/**
* Construct a binary operation value
*
* @param operation the operation as defined in Query
* @param first the first expression in the operation
* @param second the second expression in the operation
*/
public BinaryOpValueExp(int operation, ValueExp first, ValueExp second)
{
this.operation = operation;
this.first = first;
this.second = second;
}
// Public ------------------------------------------------------
// X Implementation --------------------------------------------
// Y overrides -------------------------------------------------
// Protected ---------------------------------------------------
// Package Private ---------------------------------------------
// Private -----------------------------------------------------
// Inner Classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/BooleanValueExp.java
Index: BooleanValueExp.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
/**
* A Boolean that is an arguement to a query.<p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
/*package*/ class BooleanValueExp
extends SingleValueExpSupport
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
// Static -----------------------------------------------------
// Constructors ------------------------------------------------
/**
* Construct a boolean value expression for the passed boolean
*
* @param value the boolean value
*/
public BooleanValueExp(Boolean value)
{
super(value);
}
// Public ------------------------------------------------------
// X Implementation --------------------------------------------
// Y overrides -------------------------------------------------
// Protected ---------------------------------------------------
// Package Private ---------------------------------------------
// Private -----------------------------------------------------
// Inner Classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/NumberValueExp.java
Index: NumberValueExp.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
/**
* A Number that is an arguement to a query.<p>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
/*package*/ class NumberValueExp
extends SingleValueExpSupport
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
// Static -----------------------------------------------------
// Constructors ------------------------------------------------
/**
* Construct a number value expression for the passed number
*
* @param value the value of number
*/
public NumberValueExp(Number value)
{
super(value);
}
// Public ------------------------------------------------------
// X Implementation --------------------------------------------
// Y overrides -------------------------------------------------
// Protected ---------------------------------------------------
// Package Private ---------------------------------------------
// Private -----------------------------------------------------
// Inner Classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/Query.java
Index: Query.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
/**
* This class is a factory for constructing queries.<p>
*
* TODO: Full explanation. See the spec for now for what it's worth.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
public class Query
{
// Constants ---------------------------------------------------
/**
* Divide expression
*/
public static final int DIV = 1;
/**
* Equals expression
*/
public static final int EQ = 2;
/**
* Greater than or equals expression
*/
public static final int GE = 3;
/**
* Greater than expression
*/
public static final int GT = 4;
/**
* Less than or equals expression
*/
public static final int LE = 5;
/**
* Less than expression
*/
public static final int LT = 6;
/**
* Minus expression
*/
public static final int MINUS = 7;
/**
* Plus expression
*/
public static final int PLUS = 8;
/**
* Times expression
*/
public static final int TIMES = 9;
// Attributes --------------------------------------------------
// Static -----------------------------------------------------
/**
* An attribute expression
*
* @param value the name of the attribute
* @return the expression
*/
public static ValueExp attr(String value)
{
return new AttributeValueExp(value);
}
/**
* An expression that divides the first expression by the second
*
* @param first the first expression
* @param second the second expression
* @return the expression
*/
public static ValueExp div(ValueExp first, ValueExp second)
{
return new BinaryOpValueExp(DIV, first, second);
}
/**
* An expression that subtracts the second expression from the first
*
* @param first the first expression
* @param second the second expression
* @return the expression
*/
public static ValueExp minus(ValueExp first, ValueExp second)
{
return new BinaryOpValueExp(MINUS, first, second);
}
/**
* An expression that adds the second expression to the first
*
* @param first the first expression
* @param second the second expression
* @return the expression
*/
public static ValueExp plus(ValueExp first, ValueExp second)
{
return new BinaryOpValueExp(PLUS, first, second);
}
/**
* An expression that multiplies the first expression by the second
*
* @param first the first expression
* @param second the second expression
* @return the expression
*/
public static ValueExp times(ValueExp first, ValueExp second)
{
return new BinaryOpValueExp(TIMES, first, second);
}
/**
* Create a boolean value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(boolean value)
{
return new BooleanValueExp(new Boolean(value));
}
/**
* Create a double value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(double value)
{
return new NumberValueExp(new Double(value));
}
/**
* Create a float value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(float value)
{
return new NumberValueExp(new Float(value));
}
/**
* Create an integer value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(int value)
{
return new NumberValueExp(new Integer(value));
}
/**
* Create a long value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(long value)
{
return new NumberValueExp(new Long(value));
}
/**
* Create a number value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(Number value)
{
return new NumberValueExp(value);
}
/**
* Create a string value expression for use in a Query.
*
* @return the expression
*/
public static ValueExp value(String value)
{
return new StringValueExp(value);
}
// Constructors ------------------------------------------------
/**
* Construct a new Query
*/
public Query()
{
}
// Public ------------------------------------------------------
// X Implementation --------------------------------------------
// Y overrides -------------------------------------------------
// Protected ---------------------------------------------------
// Package Private ---------------------------------------------
// Private -----------------------------------------------------
// Inner Classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/QueryEval.java
Index: QueryEval.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
import java.io.Serializable;
/**
* Support for evaluting a query in the context of an MBeanServer.<p>
*
* This is obviously rubbish. Design and implementation shouldn't be
* so closely bound together.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
public abstract class QueryEval
implements Serializable
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* I guess in the RI, all the implementation of queries is in
* javax.management?
*/
/*package*/ MBeanServer server;
// Public ------------------------------------------------------
/**
* Set the MBeanServer for this query. Only MBeans registered in
* this server can be used in queries.
*
* @param server the MBeanServer
*/
public void setMBeanServer(MBeanServer server)
{
this.server = server;
}
}
1.1 jmx/src/main/javax/management/QueryExpSupport.java
Index: QueryExpSupport.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
import java.io.Serializable;
/**
* An implementation of Query expression. Apply always returns false.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
/*package*/ class QueryExpSupport
implements QueryExp
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* The MBean server
*/
protected MBeanServer server;
// Static ------------------------------------------------------
// Public ------------------------------------------------------
// QueryExp implementation -------------------------------------
public boolean apply(ObjectName name)
throws BadStringOperationException,
BadBinaryOpValueExpException,
BadAttributeValueExpException,
InvalidApplicationException
{
return false;
}
public void setMBeanServer(MBeanServer server)
{
this.server = server;
}
// X overides --------------------------------------------------
// Protected ---------------------------------------------------
// Private -----------------------------------------------------
// Inner classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/SingleValueExpSupport.java
Index: SingleValueExpSupport.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
import java.io.Serializable;
/**
* An implementation of single value expression.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
/*package*/ class SingleValueExpSupport
extends ValueExpSupport
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* The value of this object
*/
private Object value;
// Static ------------------------------------------------------
// Constructor -------------------------------------------------
/**
* Construct a value expression for the passed value
*
* @param value the value
*/
public SingleValueExpSupport(Object value)
{
this.value = value;
}
// Public ------------------------------------------------------
/**
* Get the value of the expression
*/
public Object getValue()
{
return value;
}
// X implementation --------------------------------------------
// Object overrides --------------------------------------------
public String toString()
{
return value.toString();
}
// Protected ---------------------------------------------------
// Private -----------------------------------------------------
// Inner classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/StringValueExp.java
Index: StringValueExp.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
/**
* A String that is an arguement to a query.<p>
*
* There is some duplication of implementation because of the poor
* design.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
public class StringValueExp
implements ValueExp
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* The value of the string
*/
private String value;
/**
* The MBean server for this expression
*/
private MBeanServer server;
// Static -----------------------------------------------------
// Constructors ------------------------------------------------
/**
* Construct a string value expression for the null string.
*/
public StringValueExp()
{
}
/**
* Construct a string value expression for the passed string
*
* @param value the string
*/
public StringValueExp(String value)
{
this.value = value;
}
// Public ------------------------------------------------------
/**
* Get the value of the string.
*
* @return the string value
*/
public String getValue()
{
return value;
}
// ValueExp Implementation -------------------------------------
public ValueExp apply(ObjectName name)
{
return this;
}
public void setMBeanServer(MBeanServer server)
{
this.server = server;
}
// Object overrides --------------------------------------------
public String toString()
{
return value;
}
// Protected ---------------------------------------------------
// Package Private ---------------------------------------------
// Private -----------------------------------------------------
// Inner Classes -----------------------------------------------
}
1.1 jmx/src/main/javax/management/ValueExpSupport.java
Index: ValueExpSupport.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management;
import java.io.Serializable;
/**
* An implementation of Value expression. Apply always returns this.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
* @version $Revision: 1.1 $
*/
/*package*/ class ValueExpSupport
implements ValueExp
{
// Constants ---------------------------------------------------
// Attributes --------------------------------------------------
/**
* The MBean server
*/
private MBeanServer server;
// Static ------------------------------------------------------
// Constructor -------------------------------------------------
// Public ------------------------------------------------------
/**
* Get the MBean server
*/
public Object getMBeanServer()
{
return server;
}
// ValueExp implementation -------------------------------------
public ValueExp apply(ObjectName name)
throws BadStringOperationException,
BadBinaryOpValueExpException,
BadAttributeValueExpException,
InvalidApplicationException
{
return this;
}
public void setMBeanServer(MBeanServer server)
{
this.server = server;
}
// Object overrides --------------------------------------------
// Protected ---------------------------------------------------
// Private -----------------------------------------------------
// Inner classes -----------------------------------------------
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development