User: ejort
Date: 02/03/15 12:26:39
Modified: src/main/javax/management AndQueryExp.java
BetweenQueryExp.java BinaryComparisonQueryExp.java
BinaryOpValueExp.java InQueryExp.java
MBeanServerNotification.java MatchQueryExp.java
NotQueryExp.java OrQueryExp.java
Log:
More tests, completed basic unit tests RelationService and Query
Revision Changes Path
1.2 +7 -1 jmx/src/main/javax/management/AndQueryExp.java
Index: AndQueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/AndQueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AndQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1
+++ AndQueryExp.java 15 Mar 2002 20:26:38 -0000 1.2
@@ -12,9 +12,15 @@
* An And Query Expression.<p>
*
* Returns true only when both expressions are true.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Fix the human readable expression
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
/*package*/ class AndQueryExp
implements QueryExp
@@ -72,7 +78,7 @@
public String toString()
{
- return new String("(" +first.toString() + " && " + second.toString()) + ")";
+ return new String("(" +first.toString() + ") && (" + second.toString()) + ")";
}
// Protected ---------------------------------------------------
1.2 +8 -2 jmx/src/main/javax/management/BetweenQueryExp.java
Index: BetweenQueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/BetweenQueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BetweenQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1
+++ BetweenQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2
@@ -13,9 +13,15 @@
*
* Returns true only when the test expression is between the lower and
* upper bounds inclusive.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Fix the human readable expression
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
/*package*/ class BetweenQueryExp
implements QueryExp
@@ -108,8 +114,8 @@
public String toString()
{
- return new String("(" +lower.toString() + " <= " + test.toString() +
- " <= " + upper.toString()) + ")";
+ return new String("(" +lower.toString() + ") <= (" + test.toString() +
+ ") <= (" + upper.toString()) + ")";
}
// Protected ---------------------------------------------------
1.2 +33 -2 jmx/src/main/javax/management/BinaryComparisonQueryExp.java
Index: BinaryComparisonQueryExp.java
===================================================================
RCS file:
/cvsroot/jboss/jmx/src/main/javax/management/BinaryComparisonQueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BinaryComparisonQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1
+++ BinaryComparisonQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2
@@ -7,10 +7,16 @@
package javax.management;
/**
- * A Binary Comparison query.<p>
+ * A Binary Comparison query.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Added human readable string representation.
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
/*package*/ class BinaryComparisonQueryExp
extends QueryExpSupport
@@ -127,7 +133,32 @@
second.setMBeanServer(server);
}
- // Y overrides -------------------------------------------------
+ // Object overrides --------------------------------------------
+
+ public String toString()
+ {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("(");
+ buffer.append(first);
+ buffer.append(")");
+ switch (operation)
+ {
+ case Query.GT:
+ buffer.append(" > "); break;
+ case Query.GE:
+ buffer.append(" >= "); break;
+ case Query.LT:
+ buffer.append(" < "); break;
+ case Query.LE:
+ buffer.append(" <= "); break;
+ case Query.EQ:
+ buffer.append(" == ");
+ }
+ buffer.append("(");
+ buffer.append(second);
+ buffer.append(")");
+ return buffer.toString();
+ }
// Protected ---------------------------------------------------
1.3 +32 -3 jmx/src/main/javax/management/BinaryOpValueExp.java
Index: BinaryOpValueExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/BinaryOpValueExp.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BinaryOpValueExp.java 22 Feb 2002 16:44:32 -0000 1.2
+++ BinaryOpValueExp.java 15 Mar 2002 20:26:39 -0000 1.3
@@ -7,10 +7,16 @@
package javax.management;
/**
- * A Binary Operation that is an arguement to a query.<p>
+ * A Binary Operation that is an arguement to a query.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Added human readable string representation.
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
/*package*/ class BinaryOpValueExp
extends ValueExpSupport
@@ -104,7 +110,30 @@
second.setMBeanServer(server);
}
- // Y overrides -------------------------------------------------
+ // Object overrides --------------------------------------------
+
+ public String toString()
+ {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("(");
+ buffer.append(first);
+ buffer.append(")");
+ switch (operation)
+ {
+ case Query.PLUS:
+ buffer.append(" + "); break;
+ case Query.MINUS:
+ buffer.append(" - "); break;
+ case Query.TIMES:
+ buffer.append(" * "); break;
+ case Query.DIV:
+ buffer.append(" / ");
+ }
+ buffer.append("(");
+ buffer.append(second);
+ buffer.append(")");
+ return buffer.toString();
+ }
// Protected ---------------------------------------------------
1.2 +11 -3 jmx/src/main/javax/management/InQueryExp.java
Index: InQueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/InQueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1
+++ InQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2
@@ -12,9 +12,17 @@
* An In Query Expression.<p>
*
* Returns true only when any of the values are match.
+ *
+ * Returns true only when both expressions are true.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020315 Adrian Brock:</b>
+ * <ul>
+ * <li>Don't put ; on the end of if statements :-)
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
/*package*/ class InQueryExp
implements QueryExp
@@ -68,21 +76,21 @@
if (calcTest instanceof NumberValueExp)
{
if (((NumberValueExp)calcTest).getDoubleValue() ==
- ((NumberValueExp)calcList).getDoubleValue());
+ ((NumberValueExp)calcList).getDoubleValue())
return true;
}
// String
else if (calcTest instanceof StringValueExp)
{
if (((StringValueExp)calcTest).toString().equals(
- ((StringValueExp)calcList).toString()));
+ ((StringValueExp)calcList).toString()))
return true;
}
// Single Value, includes Boolean
else if (calcTest instanceof SingleValueExpSupport)
{
if (((SingleValueExpSupport)calcTest).getValue().equals(
- ((SingleValueExpSupport)calcList).getValue()));
+ ((SingleValueExpSupport)calcList).getValue()))
return true;
}
}
1.2 +74 -11 jmx/src/main/javax/management/MBeanServerNotification.java
Index: MBeanServerNotification.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MBeanServerNotification.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MBeanServerNotification.java 5 Dec 2001 14:18:34 -0000 1.1
+++ MBeanServerNotification.java 15 Mar 2002 20:26:39 -0000 1.2
@@ -1,25 +1,88 @@
/*
- * LGPL
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
*/
package javax.management;
-public class MBeanServerNotification extends Notification {
+/**
+ * A notification sent by the MBeanServer delegate when an MBean is
+ * registered or unregisterd.<p>
+ *
+ * NOTE: The values from the spec are wrong, the real values are<b>
+ * REGISTRATION_NOTIFICATION = "JMX.mbean.registered"<b>
+ * UNREGISTRATION_NOTIFICATION = "JMX.mbean.registered"
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020315 Adrian Brock:</b>
+ * <ul>
+ * <li>Spec has wrong values for notification values
+ * </ul>
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
+ * @version $Revision: 1.2 $
+ */
+public class MBeanServerNotification
+ extends Notification
+{
+ // Constants ---------------------------------------------------
+
+ /**
+ * Notification type sent at MBean registration
+ */
+ public static final java.lang.String REGISTRATION_NOTIFICATION =
"JMX.mbean.registered";
+
+ /**
+ * Notification type sent at MBean registration
+ */
+ public static final java.lang.String UNREGISTRATION_NOTIFICATION =
"JMX.mbean.unregistered";
+
+ // Attributes --------------------------------------------------
+
+ /**
+ * The object name of the mbean being (un)registered
+ */
+ private ObjectName mbeanName = null;
- public static final java.lang.String REGISTRATION_NOTIFICATION =
"jmx.mbean.registered";
- public static final java.lang.String UNREGISTRATION_NOTIFICATION =
"jmx.mbean.unregistered";
+ // Static ------------------------------------------------------
- // name of the mbean registered/unregistered
- private ObjectName mbeanName = null;
-
- public MBeanServerNotification(String type, Object source, long sequenceNumber,
ObjectName objectName) {
- super(type, source, sequenceNumber);
+ // Constructors ------------------------------------------------
+
+ /**
+ * Construct a new MBeanServer notification
+ *
+ * @param type the type of notification to construct
+ * @param source the source of the notification
+ * @param sequence the sequence number of the notification
+ * @param objectName the object name of the mbean being (un)registered
+ */
+ public MBeanServerNotification(String type, Object source,
+ long sequence, ObjectName objectName)
+ {
+ super(type, source, sequence);
this.mbeanName = objectName;
}
+
+ // Public ------------------------------------------------------
- public ObjectName getMBeanName() {
+ /**
+ * Get the object name of the mbean being (un)registered
+ *
+ * @return the object name
+ */
+ public ObjectName getMBeanName()
+ {
return mbeanName;
}
+ // X Implementation --------------------------------------------
-}
+ // Y Overrides -------------------------------------------------
+
+ // Protected ---------------------------------------------------
+ // Private -----------------------------------------------------
+
+ // Inner classes -----------------------------------------------
+}
1.3 +55 -28 jmx/src/main/javax/management/MatchQueryExp.java
Index: MatchQueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MatchQueryExp.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MatchQueryExp.java 1 Mar 2002 19:25:57 -0000 1.2
+++ MatchQueryExp.java 15 Mar 2002 20:26:39 -0000 1.3
@@ -11,15 +11,16 @@
/**
* A Match Query Expression.<p>
*
- * Returns true when an attribute value matches the string expression.<p>
+ * Returns true when an attribute value matches the string expression.
*
- * REVIEW: This implementation currently dynamic constructs a regular
- * expression on every invocation of apply. Is this necessary?
- * If spec allows dynamic patterns (I think it does) some
- * caching of the regular expressions is required (NOT DONE).
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Fixed most of the escaping
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
/*package*/ class MatchQueryExp
implements QueryExp
@@ -38,6 +39,11 @@
*/
StringValueExp string;
+ /**
+ * Regular Expression
+ */
+ UncheckedRE re;
+
// Static ------------------------------------------------------
// Constructors ------------------------------------------------
@@ -52,34 +58,30 @@
{
this.attr = attr;
this.string = string;
- }
-
- // Public ------------------------------------------------------
-
- // QueryExp implementation -------------------------------------
- public boolean apply(ObjectName name)
- throws BadStringOperationException,
- BadBinaryOpValueExpException,
- BadAttributeValueExpException,
- InvalidApplicationException
- {
- ValueExp calcAttr = attr.apply(name);
- ValueExp calcString = string.apply(name);
-
- if (calcAttr instanceof StringValueExp)
+ // Translate the pattern to a regexp
+ StringBuffer buffer = new StringBuffer();
+ char[] chars = string.toString().toCharArray();
+ boolean escaping = false;
+ for (int i=0; i < chars.length; i++)
{
- // Translate the pattern to a regexp (REVIEW: Caching required)
- StringBuffer buffer = new StringBuffer();
- char[] chars = string.toString().toCharArray();
- for (int i=0; i < chars.length; i++)
+ // Turn on escaping
+ if (chars[i] == '\\' && escaping == false)
+ escaping = true;
+ else
{
// Match any character
- if (chars[i] == '?')
+ if (chars[i] == '?' && escaping == false)
buffer.append("(?:.)");
+ // A literal question mark
+ else if (chars[i] == '?')
+ buffer.append("\\?");
// Match any number of characters including none
- else if (chars[i] == '*')
+ else if (chars[i] == '*' && escaping == false)
buffer.append("(?:.)*");
+ // A literal asterisk
+ else if (chars[i] == '*')
+ buffer.append("\\*");
// The hat character is literal
else if (chars[i] == '^')
buffer.append("\\^");
@@ -95,12 +97,37 @@
// The vertical line character is literal
else if (chars[i] == '|')
buffer.append("\\|");
+ // Escaping the open bracket
+ else if (chars[i] == '[' && escaping == true)
+ buffer.append("\\[");
// REVIEW: There are other more complicated expressions to escape
else
buffer.append(chars[i]);
+ escaping = false;
}
+ }
+ // REVIEW: Should this be an error?
+ if (escaping == true)
+ buffer.append("\\\\");
- UncheckedRE re = new UncheckedRE(buffer);
+ re = new UncheckedRE(buffer);
+ }
+
+ // Public ------------------------------------------------------
+
+ // QueryExp implementation -------------------------------------
+
+ public boolean apply(ObjectName name)
+ throws BadStringOperationException,
+ BadBinaryOpValueExpException,
+ BadAttributeValueExpException,
+ InvalidApplicationException
+ {
+ ValueExp calcAttr = attr.apply(name);
+ ValueExp calcString = string.apply(name);
+
+ if (calcAttr instanceof StringValueExp)
+ {
return re.isMatch(((StringValueExp)calcAttr).toString());
}
// Correct?
1.2 +7 -1 jmx/src/main/javax/management/NotQueryExp.java
Index: NotQueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/NotQueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NotQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1
+++ NotQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2
@@ -12,9 +12,15 @@
* A NOT Query Expression.<p>
*
* Returns true when either expression is false.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Fix the human readable expression
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
/*package*/ class NotQueryExp
implements QueryExp
@@ -65,7 +71,7 @@
public String toString()
{
- return new String("(!" + expression.toString() + ")" );
+ return new String("!(" + expression.toString() + ")" );
}
// Protected ---------------------------------------------------
1.2 +7 -1 jmx/src/main/javax/management/OrQueryExp.java
Index: OrQueryExp.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/javax/management/OrQueryExp.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OrQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1
+++ OrQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2
@@ -12,9 +12,15 @@
* An OR Query Expression.<p>
*
* Returns true when either expression is true.
+ *
+ * <p><b>Revisions:</b>
+ * <p><b>20020314 Adrian Brock:</b>
+ * <ul>
+ * <li>Fix the human readable expression
+ * </ul>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
/*package*/ class OrQueryExp
implements QueryExp
@@ -73,7 +79,7 @@
public String toString()
{
- return new String("(" + first.toString() + " || " + second.toString()) + ")";
+ return new String("(" + first.toString() + ") || (" + second.toString()) +
")";
}
// Protected ---------------------------------------------------
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development