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] --------------------------------------------------------------------