Re: [rules-users] How can I iterate through the ArrayList

2013-11-14 Thread Wolfgang Laun
rule "fire for each AwaitingAction"
when
   $aal: AwaitingActionList()
   $aa: AwaitingAction() from $aal.getAwaitingActionsList()
then
System.out.println( $aa.getStatus() );
end

Or you can itrerate over the list on the RHS:

rule "fire for each AwaitingActionList"
when
   $aal: AwaitingActionList()
then
for( Object obj: $aal.getAwaitingActionsList() ){
AwaitingAction aa = (AwaitingAction)obj;
System.out.println( aa.getStatus() );
}
end

-W


On 14/11/2013, Govind J. Parashar  wrote:
> Hi
>
>
> Below have my java code and main method I want  to fire rule for all value
> of "STATUS"   how to write drl for this
>
> I am passing  awaitingActionList to rule
>
> public static void main(String args[]) throws Exception {
>   
> KnowledgeBase kbase = readKnowledgeBase();
> StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
>
> AwaitingAction action = new AwaitingAction();
> AwaitingActionList awaitingActionList = new AwaitingActionList();
> List list = new ArrayList();
> action.setStatus("CU");
> action.setValue("Create User");
> list.add(action);
> action = new AwaitingAction();
> action.setStatus("CLU");
> action.setValue("Complete Request");
> list.add(action);
> action = new AwaitingAction();
> action.setStatus("CP");
> action.setValue("Create Position");
> list.add(action);
> awaitingActionList.setAwaitingActionsList(list);
> for(AwaitingAction actionVO :
> awaitingActionList.getAwaitingActionsList())
>   {
>   System.out.println("VALUE:-- "+actionVO.getValue()+"
> STATUS:--
> "+actionVO.getStatus()+"   REDIRECT TO:-- "+actionVO.getRedirect());
>   }   
>
> ksession.insert(awaitingActionList);
> ksession.fireAllRules();
> ksession.dispose();
>
>   }
>
>
>
> private static KnowledgeBase readKnowledgeBase() throws Exception {
> KnowledgeBuilder kbuilder =
> KnowledgeBuilderFactory.newKnowledgeBuilder();
> kbuilder.add(ResourceFactory.newClassPathResource("AwaitingAction.drl"),
> ResourceType.DRL);
> KnowledgeBuilderErrors errors = kbuilder.getErrors();
> if (errors.size() > 0) {
>   for (KnowledgeBuilderError error : errors) {
> System.err.println(error);
>   }
>   throw new IllegalArgumentException("Could not parse knowledge.");
> }
> KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
> return kbase;
>   }
> }
>
>
>
>
> public class AwaitingAction {
>
>   private String status;
>   private String value;
>   private String redirect;
>   public String getStatus() {
>   return status;
>   }
>   public void setStatus(String status) {
>   this.status = status;
>   }
>   public String getValue() {
>   return value;
>   }
>   public void setValue(String value) {
>   this.value = value;
>   }
>   public String getRedirect() {
>   return redirect;
>   }
>   public void setRedirect(String redirect) {
>   this.redirect = redirect;
>   }
>
>
>
> public class AwaitingActionList {
>
>   public List awaitingActionsList =  new
> ArrayList();
>
>   public List getAwaitingActionsList() {
>   return awaitingActionsList;
>   }
>
>   public void setAwaitingActionsList(List
> awaitingActionsList) {
>   this.awaitingActionsList = awaitingActionsList;
>   }
>
>   
> }
>
>
>
>
> -Original Message-
> From: rules-users-boun...@lists.jboss.org
> [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Wolfgang Laun
> Sent: 14 November 2013 05:08
> To: Rules Users List
> Subject: Re: [rules-users] How can I iterate through the ArrayList
>
> You may have to phrase your question more accurately in order to get an
> answer.
>
> Do you want the rule to fire if some, or if all, "value" fields of the
> AwaitingAction have some value? Once or for each AwaitingAction? Or do you
> want it to fire once if at least one, or if all, AwaitingActions of all
> AwaitingActionLists have a field "value" with some specific value?
>
> Also, would you consider inserting also the AwaitingAction objects as facts,
> not only the AwaitingActionList?
>
> -W
>
>
>
> On 13/11/2013, Govind J. Parashar  wrote:
>> HI,
>>
>&

Re: [rules-users] How can I iterate through the ArrayList

2013-11-14 Thread Govind J. Parashar
Hi


Below have my java code and main method I want  to fire rule for all value of 
"STATUS"   how to write drl for this 

I am passing  awaitingActionList to rule

public static void main(String args[]) throws Exception {
  
KnowledgeBase kbase = readKnowledgeBase();  
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
 
AwaitingAction action = new AwaitingAction();
AwaitingActionList awaitingActionList = new AwaitingActionList();
List list = new ArrayList();
action.setStatus("CU");
action.setValue("Create User");
list.add(action);
action = new AwaitingAction();
action.setStatus("CLU");
action.setValue("Complete Request");
list.add(action);
action = new AwaitingAction();
action.setStatus("CP");
action.setValue("Create Position");
list.add(action);
awaitingActionList.setAwaitingActionsList(list);
for(AwaitingAction actionVO : awaitingActionList.getAwaitingActionsList())
{
System.out.println("VALUE:-- "+actionVO.getValue()+"
STATUS:-- "+actionVO.getStatus()+"   REDIRECT TO:-- "+actionVO.getRedirect());
}   

ksession.insert(awaitingActionList);  
ksession.fireAllRules();  
ksession.dispose();  

  }



private static KnowledgeBase readKnowledgeBase() throws Exception {  
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();  
kbuilder.add(ResourceFactory.newClassPathResource("AwaitingAction.drl"), 
ResourceType.DRL);  
KnowledgeBuilderErrors errors = kbuilder.getErrors();  
if (errors.size() > 0) {  
  for (KnowledgeBuilderError error : errors) {  
System.err.println(error);  
  }  
  throw new IllegalArgumentException("Could not parse knowledge.");  
}  
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();  
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());  
return kbase;  
  }  
}  




public class AwaitingAction {

private String status;
private String value;
private String redirect;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getRedirect() {
return redirect;
}
public void setRedirect(String redirect) {
this.redirect = redirect;
}



public class AwaitingActionList {

public List awaitingActionsList =  new 
ArrayList();

public List getAwaitingActionsList() {
return awaitingActionsList;
}

public void setAwaitingActionsList(List 
awaitingActionsList) {
this.awaitingActionsList = awaitingActionsList;
}


}




-Original Message-
From: rules-users-boun...@lists.jboss.org 
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Wolfgang Laun
Sent: 14 November 2013 05:08
To: Rules Users List
Subject: Re: [rules-users] How can I iterate through the ArrayList

You may have to phrase your question more accurately in order to get an answer.

Do you want the rule to fire if some, or if all, "value" fields of the 
AwaitingAction have some value? Once or for each AwaitingAction? Or do you want 
it to fire once if at least one, or if all, AwaitingActions of all 
AwaitingActionLists have a field "value" with some specific value?

Also, would you consider inserting also the AwaitingAction objects as facts, 
not only the AwaitingActionList?

-W



On 13/11/2013, Govind J. Parashar  wrote:
> HI,
>
> I have a AwaitingActionList Object which has a awaitingActionsList 
> Object which has a ArrayList of AwaitingAction Objects. How can I 
> iterate through the ArrayList to get to check each object 
> AwaitingAction .value in the drl file.
>
> Java refrence file attached
>
> Thanks
> Govind
> MASTEK LTD.
> In the US, we're called MAJESCOMASTEK
>
> ~~
> 
> Opinions expressed in this e-mail are those of the individual and not 
> that of Mastek Limited, unless specifically indicated to that effect. 
> Mastek Limited does not accept any responsibility or liability for it. 
> This e-mail and attachments (if any) transmitted with it are 
> confidential and/or privileged and solely for the use of the intended 
> person or entity to which it is addressed. Any review, 
> re-transmission, dissemination or other use of or taking of any action 
> in reliance up

Re: [rules-users] How can I iterate through the ArrayList

2013-11-13 Thread Wolfgang Laun
You may have to phrase your question more accurately in order to get an answer.

Do you want the rule to fire if some, or if all, "value" fields of the
AwaitingAction have some value? Once or for each AwaitingAction? Or do
you want it to fire once if at least one, or if all, AwaitingActions
of all AwaitingActionLists have a field "value" with some specific
value?

Also, would you consider inserting also the AwaitingAction objects as
facts, not only the AwaitingActionList?

-W



On 13/11/2013, Govind J. Parashar  wrote:
> HI,
>
> I have a AwaitingActionList Object which has a awaitingActionsList Object
> which has a ArrayList of AwaitingAction Objects. How can I iterate through
> the ArrayList to get to check each object AwaitingAction .value in the drl
> file.
>
> Java refrence file attached
>
> Thanks
> Govind
> MASTEK LTD.
> In the US, we're called MAJESCOMASTEK
>
> ~~
> Opinions expressed in this e-mail are those of the individual and not that
> of Mastek Limited, unless specifically indicated to that effect. Mastek
> Limited does not accept any responsibility or liability for it. This e-mail
> and attachments (if any) transmitted with it are confidential and/or
> privileged and solely for the use of the intended person or entity to which
> it is addressed. Any review, re-transmission, dissemination or other use of
> or taking of any action in reliance upon this information by persons or
> entities other than the intended recipient is prohibited. This e-mail and
> its attachments have been scanned for the presence of computer viruses. It
> is the responsibility of the recipient to run the virus check on e-mails and
> attachments before opening them. If you have received this e-mail in error,
> kindly delete this e-mail from desktop and server.
> ~~
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


[rules-users] How can I iterate through the ArrayList

2013-11-13 Thread Govind J. Parashar
HI,

I have a AwaitingActionList Object which has a awaitingActionsList Object which 
has a ArrayList of AwaitingAction Objects. How can I iterate through the 
ArrayList to get to check each object AwaitingAction .value in the drl file.

Java refrence file attached

Thanks
Govind
MASTEK LTD.
In the US, we're called MAJESCOMASTEK

~~
Opinions expressed in this e-mail are those of the individual and not that of 
Mastek Limited, unless specifically indicated to that effect. Mastek Limited 
does not accept any responsibility or liability for it. This e-mail and 
attachments (if any) transmitted with it are confidential and/or privileged and 
solely for the use of the intended person or entity to which it is addressed. 
Any review, re-transmission, dissemination or other use of or taking of any 
action in reliance upon this information by persons or entities other than the 
intended recipient is prohibited. This e-mail and its attachments have been 
scanned for the presence of computer viruses. It is the responsibility of the 
recipient to run the virus check on e-mails and attachments before opening 
them. If you have received this e-mail in error, kindly delete this e-mail from 
desktop and server.
~~


AwaitingAction.java
Description: AwaitingAction.java


AwaitingActionClient.java
Description: AwaitingActionClient.java


AwaitingActionList.java
Description: AwaitingActionList.java


AwaitingAction.drl
Description: AwaitingAction.drl
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users