Search in sources :

Example 1 with TripleBasedStruct

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

the class TraitTest method testInternalComponents1.

@Test
public void testInternalComponents1() {
    String source = "org/drools/compiler/factmodel/traits/testTraitDon.drl";
    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    Resource res = ResourceFactory.newClassPathResource(source);
    assertNotNull(res);
    kbuilder.add(res, ResourceType.DRL);
    if (kbuilder.hasErrors()) {
        fail(kbuilder.getErrors().toString());
    }
    InternalKnowledgeBase kb = KnowledgeBaseFactory.newKnowledgeBase();
    kb.addPackages(kbuilder.getKnowledgePackages());
    TraitFactoryImpl.setMode(mode, kb);
    TraitFactoryImpl tFactory = (TraitFactoryImpl) RuntimeComponentFactory.get().getTraitFactory(kb);
    try {
        FactType impClass = kb.getFactType("org.drools.compiler.trait.test", "Imp");
        TraitableBean imp = (TraitableBean) impClass.newInstance();
        FactType traitClass = kb.getFactType("org.drools.compiler.trait.test", "Student");
        Class trait = traitClass.getFactClass();
        TraitProxyImpl proxy = (TraitProxyImpl) tFactory.getProxy(imp, trait);
        Object proxyFields = proxy.getFields();
        Object coreTraits = imp._getTraitMap();
        Object coreProperties = imp._getDynamicProperties();
        assertTrue(proxy.getObject() instanceof TraitableBean);
        assertNotNull(proxyFields);
        assertNotNull(coreTraits);
        assertNotNull(coreProperties);
        if (mode == VirtualPropertyMode.MAP) {
            assertTrue(proxyFields instanceof MapWrapper);
            assertTrue(coreTraits instanceof TraitTypeMapImpl);
            assertTrue(coreProperties instanceof HashMap);
        } else {
            assertEquals("org.drools.compiler.trait.test.Student.org.drools.compiler.trait.test.Imp_ProxyWrapper", proxyFields.getClass().getName());
            assertTrue(proxyFields instanceof TripleBasedStruct);
            assertTrue(coreTraits instanceof TraitTypeMapImpl);
            assertTrue(coreProperties instanceof TripleBasedBean);
        }
        StudentProxyImpl2 sp2 = new StudentProxyImpl2(new Imp2(), null);
        System.out.println(sp2.toString());
    } catch (Exception e) {
        e.printStackTrace();
        fail(e.getMessage());
    }
}
Also used : TraitFactoryImpl(org.drools.traits.core.factmodel.TraitFactoryImpl) HashMap(java.util.HashMap) TraitTypeMapImpl(org.drools.traits.core.factmodel.TraitTypeMapImpl) Resource(org.kie.api.io.Resource) ByteArrayResource(org.drools.core.io.impl.ByteArrayResource) ClassPathResource(org.drools.core.io.impl.ClassPathResource) TraitableBean(org.drools.core.factmodel.traits.TraitableBean) MapWrapper(org.drools.traits.core.factmodel.MapWrapper) TripleBasedBean(org.drools.traits.core.factmodel.TripleBasedBean) LogicalTypeInconsistencyException(org.drools.traits.core.factmodel.LogicalTypeInconsistencyException) FactType(org.kie.api.definition.type.FactType) TraitProxyImpl(org.drools.traits.core.factmodel.TraitProxyImpl) KnowledgeBuilder(org.kie.internal.builder.KnowledgeBuilder) TripleBasedStruct(org.drools.traits.core.factmodel.TripleBasedStruct) InternalKnowledgeBase(org.drools.kiesession.rulebase.InternalKnowledgeBase) CommonTraitTest(org.drools.traits.compiler.CommonTraitTest) Test(org.junit.Test)

Aggregations

HashMap (java.util.HashMap)1 TraitableBean (org.drools.core.factmodel.traits.TraitableBean)1 ByteArrayResource (org.drools.core.io.impl.ByteArrayResource)1 ClassPathResource (org.drools.core.io.impl.ClassPathResource)1 InternalKnowledgeBase (org.drools.kiesession.rulebase.InternalKnowledgeBase)1 CommonTraitTest (org.drools.traits.compiler.CommonTraitTest)1 LogicalTypeInconsistencyException (org.drools.traits.core.factmodel.LogicalTypeInconsistencyException)1 MapWrapper (org.drools.traits.core.factmodel.MapWrapper)1 TraitFactoryImpl (org.drools.traits.core.factmodel.TraitFactoryImpl)1 TraitProxyImpl (org.drools.traits.core.factmodel.TraitProxyImpl)1 TraitTypeMapImpl (org.drools.traits.core.factmodel.TraitTypeMapImpl)1 TripleBasedBean (org.drools.traits.core.factmodel.TripleBasedBean)1 TripleBasedStruct (org.drools.traits.core.factmodel.TripleBasedStruct)1 Test (org.junit.Test)1 FactType (org.kie.api.definition.type.FactType)1 Resource (org.kie.api.io.Resource)1 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)1