To follow my question could you provide me a simple example of changing
one property which in terms fires different rules?
I'm a little bit confused of how I should use the property change
listeners and how should I test them?
Many thanks in advance!
-----------------------------------------------------
John Chrysakis
R&D Engineer,
Institute of Computer Science (ICS),
Foundation for Research and Technology-Hellas (FORTH)
Heraklion, Crete, Greece.
-----------------------------------------------------
On Mon, 8 Sep 2008, John Chrysakis wrote:
>
> Hello again to all Jess Users,
>
> I am trying to use propertychange listeners in a simple jess application.
> But I am getting: "Jess reported an error in routine
> DefinstanceList.updateMultipleSlots"
>
> The application examines the Type of an event and prints different message
> So the EventRules.clp has the following rules:
>
> (import pack.*)
> (deftemplate CurrentEvent(declare (from-class CurrentEvent )))
>
>
> (defrule check-event-type
> (CurrentEvent {reading == "TypeX" } ) => (printout t "Event TypeX" crlf))
>
> (defrule check-event-type
> (CurrentEvent {reading == "TypeY" } ) => (printout t "Event TypeY" crlf))
>
>
>
> (defrule check-event-type
> (CurrentEvent {reading == "TypeZ" } ) => (printout t "Event TypeX" crlf))
>
>
>
> I hava a BeanSupport Class like the one of page 230 /Jess In Action Book.
> I hava a BeanSimulator which fills some values the class CurrentEvent (My
> Bean Class) and the TestJessBean which includes the main and the required
> function calls to Java API.
>
> Any ideas please, what I'm doing wrong?
>
> Thanks in advance,
>
>
> //////////////////////////////////////////////////////////////////////////////////////////////////
>
> package pack;
>
>
> public class BeanSimulator implements Runnable {
>
> private String theEventType;
>
> public BeanSimulator(){
>
> new Thread (this).start();
> }
>
>
> public String getEventType(){
>
> return theEventType;
> }
>
>
> public void run(){
>
> theEventType = "TypeY";
>
> while (true){
>
>
> try {
>
> for (int i=0; i<3; i++){
> theEventType = "TypeX";
> Thread.sleep(1000);
> theEventType = "TypeY";
> Thread.sleep(1000);
> theEventType = "TypeZ";
> Thread.sleep(1000);
> }
>
>
>
> } catch (InterruptedException e) {
>
> e.printStackTrace();
> return;
> }
>
> }
> }
>
> }
>
> /////////////////////////////////////////////////////////////////////////////////////////
>
>
> package pack;
>
> public class CurrentEvent extends BeanSupport implements Runnable{
>
> private String event_type;
> private String event_type_old;
> private String event_sender;
> private BeanSimulator bs;
>
> public CurrentEvent(String type, String sender){
>
> event_type = type;
> event_sender = sender;
>
> }
>
> public CurrentEvent(){
>
> }
>
> public String getReading(){
>
> return bs.getEventType();
> //return "TypeY";
>
> }
>
>
> public void run() {
> while (true) {
> String cur_eventtype = getReading();
>
> m_pcs.firePropertyChange("cur_eventtype",event_type_old,cur_eventtype);
> event_type_old = cur_eventtype;
> try { Thread.sleep(1000); }
>
> catch (InterruptedException ie) { return; }
> }
>
> }
>
>
> }
>
> //////////////////////////////////////////////////////////////////////////////////////////////////
>
>
> package pack;
>
> import java.io.IOException;
>
> import jess.*;
>
> public class TestJessBean {
>
>
> public static void main (String[] args) throws
> InterruptedException, IOException {
>
> JessHandler jesshand; // Makes run-until-halt and handls
> rete Objects (Engine)
>
>
> CurrentEvent cev = new CurrentEvent();
>
> try {
> jesshand = new JessHandler();
>
>
> jesshand.batch("EventRules.clp");
> BeanSimulator bs = new BeanSimulator();
>
> //jesshand.add(cev);
>
> jesshand.defClass("CurrentEvent","CurrentEvent",null);
> jesshand.defInstance("CurrentEvent",cev, true);
>
>
> } catch (JessException e) {
>
> e.printStackTrace();
> }
>
> }
>
> }
>
>
> -----------------------------------------------------
> John Chrysakis
> R&D Engineer,
> Institute of Computer Science (ICS),
> Foundation for Research and Technology-Hellas (FORTH)
> Heraklion, Crete, Greece.
> -----------------------------------------------------
>
>
>
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify [EMAIL PROTECTED]
> --------------------------------------------------------------------
>
>
--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------