"ANY" is a slot type, not a Value type. The concept you're looking for simply doesn't exist in Jess; you can't have a Value of unknown or unspecified type, any more than a Java object can have unknown type. A Java object always knows its exact class, just as a jess Value always knows its exact type. A method like the one below should throw an exception if the value of the "type" argument is unrecognized.

A couple of Jess programming tips: the FLOAT type is actually a Java double, so I'd use Double.parseDouble() here (the Jess type name comes from CLIPS). Also, you have to use the LongValue class to construct a Value of type long, or you'll get a runtime error.

Finally, a Java tip: you can (and should) just write

        else if ("STRING".equals(type))

Comparison to a boolean literal is never necessary.


On Sep 22, 2010, at 1:04 AM, Donald Winston wrote:

When the "slotType" is "ANY" my value is "<UNKNOWN>". So the RU.ANY data type cannot be used this way and I have to use one of the others?

...
fact.setSlotValue(name, getJessValue(slotType, value));
...

private Value getJessValue(String type, String value) throws JessException {
                if ("ANY".equals(type) == true)
                        return new Value(value, RU.ANY);
                else if ("STRING".equals(type) == true)
                        return new Value(value, RU.STRING);
                else if ("INTEGER".equals(type) == true)
                        return new Value(Integer.parseInt(value), RU.INTEGER);
                else if ("FLOAT".equals(type) == true)
                        return new Value(Float.parseFloat(value), RU.FLOAT);
                else if ("SYMBOL".equals(type) == true)
                        return new Value(value, RU.SYMBOL);
                else if ("LONG".equals(type) == true)
                        return new Value(Long.parseLong(value), RU.LONG);
                else
                        return new Value(value, RU.ANY);
        }

---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences, Sandia National Laboratories
PO Box 969, MS 9012, Livermore, CA 94550
http://www.jessrules.com







--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
in the BODY of a message to [email protected], NOT to the list
(use your own address!) List problems? Notify [email protected].
--------------------------------------------------------------------

Reply via email to