package org.drools.test; import org.drools.*; import org.drools.compiler.PackageBuilder; import org.junit.Test; import java.io.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; public class DroolsTest { public static class Person { public Person(String name, Integer age, Collection kids) { this.name = name; this.age = age; this.kids = kids; } private String name; private Integer age; private Collection kids; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Collection getKids() { return kids; } public void setKids(Collection kids) { this.kids = kids; } } @Test public void testAccumulateReverseModifyInsertLogical3() throws Exception { PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl(new InputStreamReader(getClass().getResourceAsStream("drools_test.drl"))); RuleBase rb = RuleBaseFactory.newRuleBase(); rb.addPackages(builder.getPackages()); StatelessSession ss = rb.newStatelessSession(); ss.execute(new Object[]{ new Person("John", 20, Arrays.asList( new Person("John Jr 1st", 10, Arrays.asList(new Person("John Jr Jr", 4, Collections.emptyList()))), new Person("John Jr 2nd", 8, Collections.emptyList()))) , new Person("Jeff", 30, Arrays.asList( new Person("Jeff Jr 1st", 10, Collections.emptyList()), new Person("Jeff Jr 2nd", 8, Collections.emptyList()))) }); } }