<div dir="ltr">i tried this :<div><br></div><div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">rule "new file"</font></div><div class="im" style="font-family:arial,sans-serif;font-size:13px">
<div><font face="arial, sans-serif">when</font></div><div><font face="arial, sans-serif"> FileData($old : fileOld, $new : fileNew, fileOld != fileNew)</font></div></div><div style="font-family:arial,sans-serif;font-size:13px">
<font face="arial, sans-serif"> </font><font face="arial,
sans-serif"><font face="arial, sans-serif"> $newFile : String( this not memberOf $old ) from $new</font><br></font></div><div><font face="arial, sans-serif" style="font-family:arial,sans-serif;font-size:13px">then <br>
</font><font face="arial, sans-serif">event : Event("file added", filename, new Date()) from $plus<br></font></div><div><font face="arial, sans-serif"> Event.listOfEvents.add(event);</font></div><div><font face="arial, sans-serif"> event.display();</font><span style="font-family:arial,sans-serif"> </span></div>
<font face="arial, sans-serif" style="font-family:arial,sans-serif;font-size:13px">end</font><br></div><div><font face="arial, sans-serif" style="font-family:arial,sans-serif;font-size:13px"><br></font></div><div><font face="arial, sans-serif" style="font-family:arial,sans-serif;font-size:13px"><br>
</font></div><div><font face="arial, sans-serif" style="font-family:arial,sans-serif;font-size:13px">this gives the following error:</font></div><div><font face="arial, sans-serif" style="font-family:arial,sans-serif;font-size:13px"><div>
The method Event(String, File, Date) is undefined for the type Rule_new_file_0c90fff8d9b74b439ab79971b13b75ac</div><div><span class="" style="white-space:pre">        </span> Syntax error on token "from", ; expected</div>
<div><span class="" style="white-space:pre">        </span> $plus cannot be resolved to a type</div><div><span class="" style="white-space:pre">        </span> Syntax error on token ".", ; expected</div><div><span class="" style="white-space:pre">        </span> listOfEvents cannot be resolved</div>
</font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 11, 2014 at 12:09 AM, Davide Sottara <span dir="ltr"><<a href="mailto:dsotty@gmail.com" target="_blank">dsotty@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>"from" will iterate for you, exactly
like "accumulate" counted the events. <br>
If you need more details, please consult the documentation<div><div class="h5"><br>
<br>
<br>
On 03/10/2014 07:29 PM, Sandhya Sree wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">The problem here is even if multiple files are
added, there is only one event object created. i want to have
like say if 3 new files are added, 3 event objects must be
created, and all three event objects must be added to
List<Event> listOfEvents.
<div>
<br>
</div>
<div><br>
</div>
<div>Thanks.</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Mon, Mar 10, 2014 at 11:48 PM,
Davide Sottara <span dir="ltr"><<a href="mailto:dsotty@gmail.com" target="_blank">dsotty@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>The "accumulates" should not be in the "then" part of
a rule (see my previous email).<br>
That rule gave you two lists, in the variables $plus and
$mins, that you can use in the consequence.<br>
<br>
If you need to process each file separately, you may
want to do something like this:<br>
<br>
<div><font face="arial, sans-serif">rule "new file"</font></div>
<div>
<div><font face="arial, sans-serif">when</font></div>
<div><font face="arial, sans-serif"> FileData($old
: fileOld, $new : fileNew, fileOld != fileNew)</font></div>
</div>
<div><font face="arial, sans-serif"> </font><font face="arial, sans-serif"><font face="arial,
sans-serif"> $newFile : String( this not memberOf
$old ) from $new</font><br>
</font></div>
<div> <font face="arial, sans-serif">then <br>
// create new event for a new file : new
Event(...)<br>
// add to list : Event.listOfEvents.add(...)<br>
</font></div>
<font face="arial, sans-serif">end</font>
<div><br>
</div>
You'll need another rule for the files that have been
removed.<br>
<br>
Notice that your Event class has no way to distinguish
"added" from "removed" files, you may want to<br>
add a boolean or something there.<br>
Best<br>
Davide
<div>
<div><br>
<br>
On 03/10/2014 07:04 PM, Sandhya Sree wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>
<div dir="ltr">hi,
<div>im new to drools..im trying to create a
project as follows. i have a class called
Monitor which monitors a folder and creates two
lists called fileOld( which is the list of
filenames in that folder at time t1) and
fileNew(which is the list of filenames in that
folder at time t2). i have another class called
FileData which contains two members fileOld and
fileNew (list of strings) with getters,setters
and constructor. fileOld and fileNew from
Monitor Class are passed to FileData class.</div>
<div><br>
</div>
<div>i also have another class called Event which
is as follows:</div>
<div>
<div>public class Event {</div>
<div><span style="white-space:pre-wrap"> </span></div>
<div><span style="white-space:pre-wrap"> </span>
public static String name;</div>
<div><span style="white-space:pre-wrap"> </span>
private File source;</div>
<div><span style="white-space:pre-wrap"> </span>
private Date timeStamp;</div>
<div> public static List<Event>
listOfEvents = new ArrayList<Event>();</div>
<div><span style="white-space:pre-wrap"> </span></div>
<div><span style="white-space:pre-wrap"> </span> </div>
<div><span style="white-space:pre-wrap"> </span>public
Event(String name, File source, Date
timeStamp) {</div>
<div><span style="white-space:pre-wrap"> </span><a href="http://this.name" target="_blank">this.name</a>
= name;</div>
<div><span style="white-space:pre-wrap"> </span>this.source
= source;</div>
<div><span style="white-space:pre-wrap"> </span>this.timeStamp
= timeStamp;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span></div>
<div><span style="white-space:pre-wrap"> </span></div>
<div><span style="white-space:pre-wrap"> </span>public
String getName() {</div>
<div><span style="white-space:pre-wrap"> </span>return
name;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span>public
void setName(String name) {</div>
<div><span style="white-space:pre-wrap"> </span><a href="http://this.name" target="_blank">this.name</a>
= name;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span>public
File getSource() {</div>
<div><span style="white-space:pre-wrap"> </span>return
source;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span>public
void setSource(File source) {</div>
<div><span style="white-space:pre-wrap"> </span>this.source
= source;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span>public
Date getTimeStamp() {</div>
<div><span style="white-space:pre-wrap"> </span>return
timeStamp;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span>public
void setTimeStamp(Date timeStamp) {</div>
<div><span style="white-space:pre-wrap"> </span>this.timeStamp
= timeStamp;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
<div><span style="white-space:pre-wrap"> </span></div>
</div>
<div><br>
</div>
<div>now i have to compare these two lists(fileOld
and fileNew) in a rule file and if they are not
equal i have to create an event object for every
file added and deleted and put it in the
List<Event> listOfEvents.</div>
<div><br>
</div>
<div>here is my rule file:</div>
<div><br>
</div>
<div>
<div><span style="font-family:arial,sans-serif;font-size:13px">r</span><font face="arial, sans-serif">rule "files are
equal"</font></div>
<div><span style="font-family:arial,sans-serif">
when </span></div>
<div><font face="arial, sans-serif">
FileData( fileOld == fileNew)</font></div>
<div><font face="arial, sans-serif"> then</font></div>
<div><font face="arial, sans-serif">
System.out.println("files are equal");</font></div>
<div><font face="arial, sans-serif"> </font><span style="font-family:arial,sans-serif">end</span></div>
<div><font face="arial, sans-serif"><br>
</font></div>
<div><font face="arial, sans-serif"><br>
</font></div>
<div><font face="arial, sans-serif">rule "files
not equal"</font></div>
<div><font face="arial, sans-serif">when</font></div>
<div><font face="arial, sans-serif">
FileData($old : fileOld, $new : fileNew,
fileOld != fileNew)</font></div>
<div><font face="arial, sans-serif"> </font></div>
<div> <font face="arial, sans-serif">then</font></div>
<div><font face="arial, sans-serif">
accumulate( $s : String( this not memberOf
$old ) from $new, $plus : collectList( $s )
) </font></div>
<div><font face="arial, sans-serif">
accumulate( $t : String( this not memberOf
$new ) from $old, $mins : collectList( $t )
) </font></div>
<div><font face="arial, sans-serif">
System.out.println("files added:" + $plus
); </font></div>
<div><font face="arial, sans-serif">
System.out.println( "files deleted:" +
$mins );</font></div>
<div> <font face="arial, sans-serif">end</font></div>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>how can i loop through each of the file added
or deleted and create an Event Class object for
every file added and deleted and finally add
all the created objects to List<Event>
listOfEvents..</div>
<div><br>
</div>
<div><br>
</div>
<div>Thanks.</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div>
</div>
<pre>_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
</blockquote>
<br>
</div>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br></div>