Problem in Modfying a java Object

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Problem in Modfying a java Object

chownikhil
Hello All,

I have an object called Request in java. I am trying to modify the object by firing a jess rule but i don't find any changes in the object

Request class:

package proto;

import java.io.*;

public class Request implements Serializable
{
        public String destination;
        public int passengerAge;
       
        public void setDestination(String dest)
        {
                destination = dest;
        }
       
        public void setPassengerAge(int personAge)
        {
                passengerAge = personAge;
        }
       
        public String getDestination()
        {
                return destination;
        }
       
        public int getPassengerAge()
        {
                return passengerAge;
        }
}

Java code for accessing the jess rules :


                        final Rete engine = new Rete();
                       
                        engine.eval("(deftemplate Request (declare (from-class proto.Request)))");
                       
                        engine.eval("(deftemplate Proposal (declare (from-class proto.Proposal)))");
                       
                        FileReader fp = new FileReader("C:\\Users\\Venkat\\workspace\\nnayuni_contract-net_p5\\src\\SellerRules.clp");
 
                        final Context context = engine.getGlobalContext();

                        final Jesp parser = new Jesp(fp, engine);

                                        Object result = Funcall.TRUE;
                                        while(!result.equals(Funcall.EOF))
                                        {
                                                try
                                                {
                                                        result = parser.parseExpression(context, false);
                                                        System.out.println(result);
                                                }
                                                catch (JessException e)
                                                {
                                                        e.printStackTrace();
                                                }
                                        }
                                        try
                                        {
                                                Request req = (Request) cfp.getContentObject();
                                                Proposal temp = new Proposal();
                                                Fact f = new Fact("Request", engine);
                                                f.setSlotValue("passengerAge", new Value(req.getPassengerAge()));
                                                f.setSlotValue("destination", new Value(req.getDestination()));
                                                engine.assertFact(f);
                                                engine.reset();
                                                engine.run();
                                                System.out.println(req.getPassengerAge());
                                        }
                    catch (JessException e)
                    {
                                                e.printStackTrace();
                                        }
                    catch (UnreadableException e)
                    {
                                                e.printStackTrace();
                                        }

jess rule :

(defrule welcome-toddlers
    "Give a special greeting to young children"
    ?fact <- (Request {passengerAge > 3})
    =>    
(modify ?fact (passengerAge 14)))