can I ask to have that in a zip? just to make sure it is as you have it?

Thanks.

On 5/9/06, Alberto Siena <[EMAIL PROTECTED]> wrote:

Michael Neale <michael.neale <at> gmail.com> writes:

>
> Sorry wasn't able to reproduce, the class you provided looks slightly
> mangled - there is no "getSat" method is the error I get.
>

Oh sorry, I made an adaptation without verifying it. Try this one. If in
the
"then" clause you comment the function and uncomment the assignment the
error
disappears.
Alberto


package dtest;

public class Node
{
        public float value = 0;

        public Node( float v )
        {
                value = v;
        }

        public float getValue()
        {
                return value;
        }
        public void setValue( float f )
        {
                value = f;
        }
}


package dtest;

public class Relation
{
        public Node source = null;
        public Node target = null;

        public Relation( Node s, Node t )
        {
                source = s;
                target = t;
        }

        public Node getSource()
        {
                return source;
        }
        public void setSource( Node n )
        {
                source = n;
        }

        public Node getTarget()
        {
                return target;
        }
        public void setTarget( Node n )
        {
                target = n;
        }
}


package dtest.rules

import dtest.Node;
import dtest.Relation;

function void propagateValue( Node g1, Node g2 )
{
        g2.setValue( g1.getValue() );
}


rule "A Rule"

        when
                r : Relation( sn : source, en : target );
                g1 : Node( s1: value > 0 );
                g2 : Node( s2 : value < s1 );

                eval( g1 == sn );
                eval( g2 == en );

        then
                propagateValue( g1, g2 );
                #g2.value = g1.value;
                modify( g2 );

end


        try {

                //load up the rulebase
            RuleBase ruleBase = readRule( "/RuleTest.drl" );
            WorkingMemory workingMemory = ruleBase.newWorkingMemory();

            Node n1 = new Node( 1.0f );
            Node n2 = new Node( 0.0f );
            Node n3 = new Node( 0.0f );

            Relation r1 = new Relation( n1, n2 );
            Relation r2 = new Relation( n2, n3 );

            workingMemory.assertObject( n1 );
            workingMemory.assertObject( n2 );
            workingMemory.assertObject( n3 );
            workingMemory.assertObject( r1 );
            workingMemory.assertObject( r2 );

                System.out.println( "Initial state ( " +
                                n1.value + ", " +
                                n2.value + ", " +
                                n3.value + ")" );

            workingMemory.fireAllRules();

                System.out.println( "Final state ( " +
                                n1.value + ", " +
                                n2.value + ", " +
                                n3.value + ")" );
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }



Reply via email to