If you are checking for class in the LHS would it not be
better to define a separate rule for the subclass?
I assume you're doing something like:-
rule "current"
when
MyClass(class ==
MySubClassOfMyClass.class)
then
//Something specific to the
subclass
end
When something like this might be more
suited?
rule "super"
when
MyClass()
then
//Do generic stuff
end
rule "sub"
when
MySubClassOfMyClass()
then
//Do something more specific
end
I don't know whether this would cause two activations or
whether the more generic would swallow the Fact in the first ObjectType node in
the RETE network; Edson?
Are you using MVEL at all in this rule?
Anyway, better would
be
class == SomeClass.class
which avoids string
handling.
-W
On Thu, Nov 12, 2009 at 3:25 PM, Zohar Etzioni
<zohar.etzioni@gmail.com> wrote:
Hi,
I
have a class hierarchy of objects that I'm inserting as facts. Lets
say
X, Y extends X and Z extends Y. I have a rule that is defined on X
and
therefore applies to all of them, however in the rule I want to
ask about
the class name and I'm referring to it as
class.name=="some.class". This should work as far as I
understand coz
it keeps the java beans format, however it is not directly
defined in
the class X but rather in Object. The error I'm getting is
"Error:
could not access: name". Any idea what I'm doing
wrong?
Thanks,
Dawg
_______________________________________________
rules-users
mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users