Search in sources :

Example 11 with Entity

use of org.drools.traits.core.factmodel.Entity in project drools by kiegroup.

the class MetadataTest method testDon.

@Test
public void testDon() {
    Entity entity = new Entity("123");
    entity._setDynamicProperties(new HashMap());
    entity._getDynamicProperties().put("prop", "hello");
    Klass klass = Klass_.donKlass(entity).setTraitFactory(createStandaloneTraitFactory()).call();
    assertEquals("hello", klass.getProp());
}
Also used : Entity(org.drools.traits.core.factmodel.Entity) SubKlass(org.drools.traits.core.meta.org.test.SubKlass) AnotherKlass(org.drools.traits.core.meta.org.test.AnotherKlass) Klass(org.drools.traits.core.meta.org.test.Klass) HashMap(java.util.HashMap) Test(org.junit.Test)

Example 12 with Entity

use of org.drools.traits.core.factmodel.Entity in project drools by kiegroup.

the class StandaloneTest method testThing.

@Test
public void testThing() throws LogicalTypeInconsistencyException {
    // Entity is @Traitable and implements TraitableBean natively
    // Thing is a Trait
    // --> just call getProxy
    Entity core = new Entity("x");
    Thing thing = factory.don(core, Thing.class);
    assertNotNull(thing);
}
Also used : Entity(org.drools.traits.core.factmodel.Entity) Thing(org.drools.core.factmodel.traits.Thing) Test(org.junit.Test)

Example 13 with Entity

use of org.drools.traits.core.factmodel.Entity in project drools by kiegroup.

the class TraitTest method testTraitdeleteOrder.

@Test
public void testTraitdeleteOrder() {
    String drl = "" + "package org.drools.core.factmodel.traits.test;\n" + "\n" + "import org.drools.core.factmodel.traits.*;\n" + "import org.drools.traits.core.factmodel.*;\n" + "import java.util.*;\n" + "\n" + "declare trait A end \n" + "declare trait B extends A end \n" + "declare trait C end \n" + "\n" + "rule \"don\"\n" + "when \n" + "  $e : Entity() \n" + "then\n" + "  don( $e, A.class ); \n" + "  don( $e, C.class ); \n" + "  don( $e, B.class ); \n" + "end\n" + "";
    KieSession ksession = loadKnowledgeBaseFromString(drl).newKieSession();
    TraitFactoryImpl.setMode(mode, ksession.getKieBase());
    FactHandle handle = ksession.insert(new Entity());
    ksession.fireAllRules();
    final ArrayList list = new ArrayList();
    ksession.addEventListener(new RuleRuntimeEventListener() {

        public void objectInserted(org.kie.api.event.rule.ObjectInsertedEvent objectInsertedEvent) {
        }

        public void objectUpdated(org.kie.api.event.rule.ObjectUpdatedEvent objectUpdatedEvent) {
        }

        public void objectDeleted(org.kie.api.event.rule.ObjectDeletedEvent objectRetractedEvent) {
            Object o = objectRetractedEvent.getOldObject();
            if (o instanceof TraitProxyImpl) {
                String traitName = ((TraitProxyImpl) o)._getTraitName();
                list.add(traitName.substring(traitName.lastIndexOf(".") + 1));
            }
        }
    });
    ksession.delete(handle);
    ksession.fireAllRules();
    System.out.println(list);
    assertEquals(Arrays.asList("B", "C", "A"), list);
}
Also used : Entity(org.drools.traits.core.factmodel.Entity) InternalFactHandle(org.drools.core.common.InternalFactHandle) FactHandle(org.kie.api.runtime.rule.FactHandle) ArrayList(java.util.ArrayList) TraitProxyImpl(org.drools.traits.core.factmodel.TraitProxyImpl) RuleRuntimeEventListener(org.kie.api.event.rule.RuleRuntimeEventListener) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) KieSession(org.kie.api.runtime.KieSession) CommonTraitTest(org.drools.traits.compiler.CommonTraitTest) Test(org.junit.Test)

Aggregations

Entity (org.drools.traits.core.factmodel.Entity)13 Test (org.junit.Test)13 CommonTraitTest (org.drools.traits.compiler.CommonTraitTest)10 KieSession (org.kie.api.runtime.KieSession)7 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)7 KieBase (org.kie.api.KieBase)5 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 ByteArrayResource (org.drools.core.io.impl.ByteArrayResource)4 InternalKnowledgeBase (org.drools.kiesession.rulebase.InternalKnowledgeBase)4 TraitProxyImpl (org.drools.traits.core.factmodel.TraitProxyImpl)4 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)4 TraitableBean (org.drools.core.factmodel.traits.TraitableBean)3 ClassPathResource (org.drools.core.io.impl.ClassPathResource)3 LogicalTypeInconsistencyException (org.drools.traits.core.factmodel.LogicalTypeInconsistencyException)3 TraitFactoryImpl (org.drools.traits.core.factmodel.TraitFactoryImpl)3 FactType (org.kie.api.definition.type.FactType)3 Resource (org.kie.api.io.Resource)3 List (java.util.List)2 Map (java.util.Map)2