示例#1
0
 /**
  * Return true if the supplied expression "contradicts" this expression. If the supplied
  * expression is not of the same type, then it cannot contradict it. If the names are different
  * then there can be no contradiction.
  *
  * <p>Contradiction occurs if the value is different.
  *
  * @param o Expression to examine for contradiction.
  */
 public boolean contradicts(Expression o) {
   if (!(o instanceof KVExpression)) return (false);
   KVExpression other = (KVExpression) o;
   if (getName().compareTo(other.getName()) != 0) return (false);
   if (val.compareTo(other.getValue()) == 0) return (false);
   return (true);
 }
示例#2
0
 /**
  * Indicates whether some other KVExpression is "equal to this one.
  *
  * @param o the reference object with which to compare.
  * @return <code>true</code> if this object is the same as the o argument; <code>false</code>
  *     otherwise.
  * @see #hashCode()
  */
 public boolean equals(Object o) {
   if (o == this) return (true);
   if (!(o instanceof KVExpression)) return (false);
   KVExpression other = (KVExpression) o;
   if (getName().compareTo(other.getName()) != 0 || val.compareTo(other.getValue()) != 0)
     return (false);
   return (true);
 }
示例#3
0
 /**
  * Returns the supplied string as an expression.
  *
  * <p>This utility function attempts to identify the supplied string as an expression. It tries in
  * turn each of the known sub-classes until finally, if none can be recognized, an exception is
  * thrown. This function is not immune to mistakenly mis-classifying an expression. It is the
  * responsibility of the concrete Exrpession classes to ensure that syntactic integrity is
  * maintained with respect to potential cases of mistaken identity.
  *
  * @param raw The candidate expression
  * @throws IllegalArgumentException If no valid expression can be found
  */
 static Expression valueOf(String raw) throws IllegalArgumentException {
   Expression exp = null;
   /*
    * TODO It would be better if subclasses registered,
    * but this hard coded list will do until such a time
    */
   if ((exp = KVOpExpression.valueOf(raw)) == null)
     if ((exp = KVExpression.valueOf(raw)) == null) exp = KExpression.valueOf(raw);
   if (exp == null) throw new IllegalArgumentException("unrecognized expression: " + raw);
   return (exp);
 }