/** Test setup. */ protected void setUp() throws Exception { state = OAVStateFactory.createOAVState(Blocks.blocksworld_type_model); blocks = new ArrayList(); // ?block <- (Block (color ?color)) // (Ball (color ?color)) // Matches a block with a color ObjectCondition cblock = new ObjectCondition(Blocks.block_type); cblock.addConstraint(new BoundConstraint(null, new Variable("block", Blocks.block_type))); cblock.addConstraint( new BoundConstraint( Blocks.block_has_color, new Variable("color", OAVJavaType.java_string_type))); // Matches a ball with the same color ObjectCondition samecolor = new ObjectCondition(Blocks.ball_type); samecolor.addConstraint( new BoundConstraint( Blocks.ball_has_color, new Variable("color", OAVJavaType.java_string_type))); // Add block of triggered condition to list. ICondition cond = new AndCondition(new ICondition[] {cblock, samecolor}); IRule rule = new Rule( "block", cond, new IAction() { public void execute(IOAVState state, IVariableAssignments assigments) { blocks.add(assigments.getVariableValue("block")); } }); // Create rule system. Rulebase rb = new Rulebase(); system = new RuleSystem(state, rb, new RetePatternMatcherFunctionality(rb)); system.getRulebase().addRule(rule); system.init(); /*RetePanel.createReteFrame("Equal Join Test", ((RetePatternMatcherFunctionality)system.getMatcherFunctionality()).getReteNode(), ((RetePatternMatcherState)system.getMatcherState()).getReteMemory(), system.getAgenda(), new Object()); synchronized(system){system.wait();}*/ // Add red block and green ball. block = state.createRootObject(Blocks.block_type); state.setAttributeValue(block, Blocks.block_has_color, "red"); ball = state.createRootObject(Blocks.ball_type); state.setAttributeValue(ball, Blocks.ball_has_color, "green"); }
/** Test setup. */ protected void setUp() throws Exception { state = OAVStateFactory.createOAVState(OAVJavaType.java_type_model); triggered = new ArrayList(); // test for two beans with same name: // (TestBean (toString () ?string)) // (TestBean2 (toString () ?string)) OAVJavaType clazz = OAVJavaType.java_type_model.getJavaType(TestBean.class); MethodCall method = new MethodCall(clazz, TestBean.class.getMethod("toString", new Class[0])); ObjectCondition cobject = new ObjectCondition(clazz); cobject.addConstraint( new BoundConstraint(method, new Variable("?string", OAVJavaType.java_string_type))); OAVJavaType clazz2 = OAVJavaType.java_type_model.getJavaType(TestBean2.class); MethodCall method2 = new MethodCall(clazz2, TestBean2.class.getMethod("toString", new Class[0])); ObjectCondition cobject2 = new ObjectCondition(clazz2); cobject2.addConstraint( new BoundConstraint(method2, new Variable("?string", OAVJavaType.java_string_type))); // Add string of triggered bean to list. IRule rule = new Rule( "collect_rule", new AndCondition(new ICondition[] {cobject, cobject2}), new IAction() { public void execute(IOAVState state, IVariableAssignments assigments) { Object string = assigments.getVariableValue("?string"); triggered.add(string); } }); // Create rule system. Rulebase rb = new Rulebase(); system = new RuleSystem(state, rb, new RetePatternMatcherFunctionality(rb)); system.getRulebase().addRule(rule); system.init(); // state.notifyEventListeners(); // RetePanel.createReteFrame("Collect Node Test", system, new Object()); // synchronized(system){system.wait();} bean1 = new TestBean("A"); state.addJavaRootObject(bean1); bean2 = new TestBean2("B"); state.addJavaRootObject(bean2); }