Example #1
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);
 }