[rules-users] Calling a method in when part
Wolfgang Laun
wolfgang.laun at gmail.com
Wed Aug 10 13:14:35 EDT 2011
On 10 August 2011 17:14, Sumeet Karawal <sumeet.karawal at tcs.com> wrote:
>
>
> package rules.person
>
> import com.person.Age
> Import com.person.Classification
>
> rule "Check_person.option1"
>
> when
>
> $age : com.person.Age()
> $classification : com.person.Classification()
>
If you import, you can use just "Age" and "Classification".
>
> eval ($age.getClassification("16"))
>
This is not correct since the return value of Age.getClassification is not a
boolean.
As you present this code, it doesn't make any sense. The condition is a join
of an Age object and a Classification object and the argument of
getClassification("16") is a literal.
Providing an object to collect results is one reasonable way of doing it.
-W
>
> then
>
> modify ($classification) {$classification.setResult('"Teenager"; }
>
> end
>
> rule "Check_person.option2"
>
> when
>
> $age : com.person.Age()
> $classification : com.person.Classification()
>
> eval ($age.getClassification("40"))
>
> then
>
> modify ($classification) {$classification.setResult('"Adult"; }
>
> end
>
>
> Application Class :
>
> public class Age
> {
> public string getClassification(String name) {
> <Logic of the application>
> return str;
> }
> }
>
> public class Classification
> {
> public void setResult(String name) {
> <Logic of the application>
>
> }
> }
>
>
>
> Queries :
>
> Please let me know if I am using the 'when' part correctly.
> And please check for the use of the object 'classification' in my
> application (as return value to the application)
>
>
>
>
> Thanks & Regards,
> Sumeet Karawal
> Mailto: sumeet.karawal at tcs.com
>
>
>
> From: Wolfgang Laun <wolfgang.laun at gmail.com>
>
> To: Rules Users List <rules-users at lists.jboss.org>
>
> Date: 08/10/2011 03:03 PM
>
> Subject: Re: [rules-users] Calling a method in when part
>
> Sent by: rules-users-bounces at lists.jboss.org
>
>
>
>
>
>
> If you don't show your code we can't tell you what is wrong with it. So I
> think what you may have to do is
>
> when
> $someObj: SomeClass() # matches each WME of SomeClass
> eval( $someObj.getValueBoolean("abc"))
> then
>
> There is not much to be gained by using a DRL function; it would have to be
> called like
> eval( someFunction( $someObj, "abc" ) )
>
> -W
>
>
> On 10 August 2011 11:05, Sumeet Karawal <sumeet.karawal at tcs.com> wrote:
>
> Hi,
>
> I have a requirement where there is a customized Java class having a
> method
> that returns some value.
> like:
>
> getValueBoolean("Some String")
>
> { //some calculation
> // returns a boolean value
> }
>
> The default getters and setters are not being used in the Application.
> The
> value that is being returned by the method needs to be checked in
> the .drl
> file.
> There are different Java classes with these kind of methods. Where the
> string and integer value is also returned. I have gone through the
> documentation for Drools-Expert but have only found the implementation
> for
> the method in the consequence part, i.e., the then part.
>
> This is how I tried:
>
> importing the class
>
> in when
> binding the a variable to the Class name suppose $c
> eval ($c.getValueBoolean("abc"))
> then
> System.out.println("the value is true")
>
>
> It didn't work this way.
> I tried by another way like :
>
> creating a function in the .drl itself that calls the method of that
> class
> and returns a value
> then calling this drl function in the when part and carrying on.
>
> It would be very helpful if some body could let me know how to do this in
> the .drl.
>
>
> Thanks & Regards,
> Sumeet Karawal
> Mailto: sumeet.karawal at tcs.com
>
> =====-----=====-----=====
> Notice: The information contained in this e-mail
> message and/or attachments to it may contain
> confidential or privileged information. If you are
> not the intended recipient, any dissemination, use,
> review, distribution, printing or copying of the
> information contained in this e-mail message
> and/or attachments to it are strictly prohibited. If
> you have received this communication in error,
> please notify us by reply e-mail or telephone and
> immediately and permanently delete the message
> and any attachments. Thank you
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110810/a5f4a0d8/attachment.html
More information about the rules-users
mailing list