[rules-users] Does Session effeciently filter unused facts, or...
Edson Tirelli
ed.tirelli at gmail.com
Tue Nov 24 23:40:20 EST 2009
In current Drools versions, you will need to use some "internal APIs" for
that, but we can probably add a higher level method call for the next
version.
The LHS of a rule is a tree of RuleConditionElements. What you need to do
is navigate the tree recursively using the getNestedElements() method and
looking for Patterns. In pseudo algorithm:
***************
Package pkg = ...; // obtain a package from the package builder or from the
rulebase
Set<Class<?>> usedClasses = new HashSet<Class<?>>();
for( Rule rule : pkg.getRules() ) {
RuleConditionElement lhs = rule.getLhs();
collectUsedClasses( usedClasses, lhs );
}
**************
public void collectUsedClasses( Set<Class<?>> usedClasses,
RuleConditionElement rce ) {
if( rce instanceof Pattern ) {
ObjectType ot = ((Pattern)rce).getObjectType();
if( ot instanceof ClassObjectType ) {
usedClasses.add( ((ClassObjectType)ot).getClassType() );
}
}
for( RuleConditionElement child : rce.getNestedElements() ) {
collectUsedClasses( usedClasses, child );
}
}
******************
I wrote the above code directly into the e-mail, so there might be some
mistakes, but the idea is there... so you can probably figure out, based on
that.
Edson
2009/11/24 Barry Kaplan <groups1 at memelet.com>
>
> Ah, yes Edson. I didn't even think of that. That will probably force my
> hand
> to filter.
>
> But that then leaves me with how to determine the set of classes used in
> the
> rules. Doing it by textual inspection is not viable since rules can be
> added
> as part of the application (by "users'). So that pointer on how to
> determine
> used fact types would be much appreciated.
>
> --
> View this message in context:
> http://old.nabble.com/Does-Session-effeciently-filter-unused-facts%2C-or...-tp26489782p26507196.html
> Sent from the drools - user mailing list archive at Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091124/b55a13e2/attachment.html
More information about the rules-users
mailing list