It may also be worth explaining exactly what you aim to achieve through this and why. From
what I have seen, most people who ask about introspecting the LHS of rules via the API,
don’t actually need to do that.
Steve
On 7 Jan 2014, at 08:56, Wolfgang Laun <wolfgang.laun(a)gmail.com> wrote:
Hi,
while you continue this line of research you might consider possible
ramifications and snags, and be prepared for them.
The syntax for writing LHS conditions is quite complex - it's more
complex than Java expressions, because the CE eval() alone will give
you (almost) all of that. Rule authors may also use DRL functions,
which could hide field access.
If *you* author the rules, you may be able to avoid the worst, but it
won't be a piece of cake.
Cheers
-W
On 07/01/2014, milen igrachev <igrachev(a)abv.bg> wrote:
> Hello thanks for the quick and precise answer!
> I believe that the time difference will be a bit of a problem for the IRC
> chat , but i will be online (channel: #drools user: igrachev) today and will
> try to check it often. However big thanks for the support and the
> willingness to help!
> You are saying that the code is there, but is not public and documented.
> Well being not public seems to be a problem, but do you think it is
> possible to give me an example with the official Drools "first rule" -
> Sample.drl. The one that comes with the first Drools project. So do you
> believe it will be possible to paste me some code on how to retrieve the
> information that this ruleset is using one fact of type Message and two of
> it's attributes - status and message. So just some code in a public
> static void main (String [] args) will be great :), or any kind of
> explanation :).
> Once again thank you.
> Have a nice day,
> Milen
>
>
>
> ----Original Letter----
> From: Mark Proctor mproctor(a)codehaus.org
>
> About: Re: [rules-users] Is rule introspection available from the Drools
> API?
>
> To: Rules Users List
>
> Sent at: Monday, 2014, January 6 16:05:33 EET
>
>
> The code is there, but it’s not public and not documented, and the code can
> be a little hard to understand - as it’s grown organically over the years.
>
>
>
> You’ll need to cast and unwrap and look at member vars. Start on the Rule
> and the lhs variable. You can always pop onto irc, with live questions,and
> we’ll try and respond quickly.
>
>
http://www.jboss.org/drools/irc
>
>
>
> Mark
>
>
>
> On 6 Jan 2014, at 09:51, milen igrachev igrachev(a)abv.bg > wrote:
>
>
>
>> Hello,
>
>> is there a way to introspect a Drools file from within java code?
>
>> What I need is to be able to identify the facts and the fact attributes
>> that are used in a given DRL file.
>
>>
>
>> For example if I have a rule stored in a customer.drl DRL file within my
>> project, containing the following definition:
>
>> package myRulePackage
>
>>
>
>> import org.rules.model.Customer
>
>> import org.rules.model.Mambership
>
>>
>
>> rule "is eligible customer"
>
>> when
>
>> $c:Customer(status == "active")
>
>> Membership(customer == $c, type == "premium")
>
>> then
>
>> $c.setEligibilityStatus(true);
>
>> end
>
>>
>
>> What i need is a way to understand that this ruleset customer.drl is using
>> two fact types - Customer and Membership and three of their attributes -
>> Customer.status, Membership.customer and Membership.type.
>
>>
>
>>
>
>> I found some information on the internet that such functionality is not
>> supported, however the information was a bit too old, so I decided to ask
>> again.
>
>>
>
>>
>
>> Big thanks for the support!
>
>> Milen
>
>> _______________________________________________
>
>> rules-users mailing list
>
>> rules-users(a)lists.jboss.org
>
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
>
> _______________________________________________
>
> rules-users mailing list
>
> rules-users(a)lists.jboss.org
>
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users