Search in sources :

Example 1 with FieldTemplate

use of org.drools.core.facttemplates.FieldTemplate in project drools by kiegroup.

the class Misc2Test method testFactTemplates.

@Test
public void testFactTemplates() {
    // DROOLS-600
    String drl = "package com.testfacttemplate;" + " rule \"test rule\" " + " dialect \"mvel\" " + " when " + " $test : TestFactTemplate( status == 1 ) " + " then " + " System.out.println( \"Hello World\" ); " + " end ";
    KnowledgePackageImpl kPackage = new KnowledgePackageImpl("com.testfacttemplate");
    FieldTemplate fieldTemplate = new FieldTemplateImpl("status", 0, Integer.class);
    FactTemplate factTemplate = new FactTemplateImpl(kPackage, "TestFactTemplate", new FieldTemplate[] { fieldTemplate });
    KnowledgeBuilder kBuilder = new KnowledgeBuilderImpl(kPackage);
    StringReader rule = new StringReader(drl);
    try {
        ((KnowledgeBuilderImpl) kBuilder).addPackageFromDrl(rule);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
Also used : FactTemplateImpl(org.drools.core.facttemplates.FactTemplateImpl) FieldTemplate(org.drools.core.facttemplates.FieldTemplate) KnowledgeBuilder(org.kie.internal.builder.KnowledgeBuilder) FieldTemplateImpl(org.drools.core.facttemplates.FieldTemplateImpl) KnowledgeBuilderImpl(org.drools.compiler.builder.impl.KnowledgeBuilderImpl) StringReader(java.io.StringReader) KnowledgePackageImpl(org.drools.core.definitions.impl.KnowledgePackageImpl) DroolsParserException(org.drools.compiler.compiler.DroolsParserException) FactTemplate(org.drools.core.facttemplates.FactTemplate) Test(org.junit.Test)

Example 2 with FieldTemplate

use of org.drools.core.facttemplates.FieldTemplate in project drools by kiegroup.

the class HashMapFactImpl method setFieldValue.

@Override
public void setFieldValue(int index, Object value) {
    FieldTemplate field = factTemplate.getFieldTemplate(index);
    valuesMap.put(field.getName(), value);
}
Also used : FieldTemplate(org.drools.core.facttemplates.FieldTemplate)

Example 3 with FieldTemplate

use of org.drools.core.facttemplates.FieldTemplate in project drools by kiegroup.

the class PatternTest method testDeclarationsFactTemplate.

@Test
public void testDeclarationsFactTemplate() throws Exception {
    InternalKnowledgePackage pkg = new KnowledgePackageImpl("org.store");
    final FieldTemplate cheeseName = new FieldTemplateImpl("name", 0, String.class);
    final FieldTemplate cheesePrice = new FieldTemplateImpl("price", 1, Integer.class);
    final FieldTemplate[] fields = new FieldTemplate[] { cheeseName, cheesePrice };
    final FactTemplate cheese = new FactTemplateImpl(pkg, "Cheese", fields);
    final ObjectType type = new FactTemplateObjectType(cheese);
    final Pattern col = new Pattern(0, type, "foo");
    final Declaration dec = col.getDeclaration();
    final InternalReadAccessor ext = dec.getExtractor();
    assertEquals(Fact.class, ext.getExtractToClass());
    final Fact stilton = cheese.createFact(10);
    stilton.setFieldValue("name", "stilton");
    stilton.setFieldValue("price", new Integer(200));
    assertEquals(stilton, dec.getValue(null, stilton));
}
Also used : FactTemplateImpl(org.drools.core.facttemplates.FactTemplateImpl) FieldTemplate(org.drools.core.facttemplates.FieldTemplate) FieldTemplateImpl(org.drools.core.facttemplates.FieldTemplateImpl) Fact(org.drools.core.facttemplates.Fact) ClassObjectType(org.drools.core.base.ClassObjectType) ObjectType(org.drools.core.spi.ObjectType) FactTemplateObjectType(org.drools.core.facttemplates.FactTemplateObjectType) InternalReadAccessor(org.drools.core.spi.InternalReadAccessor) FactTemplateObjectType(org.drools.core.facttemplates.FactTemplateObjectType) KnowledgePackageImpl(org.drools.core.definitions.impl.KnowledgePackageImpl) InternalKnowledgePackage(org.drools.core.definitions.InternalKnowledgePackage) FactTemplate(org.drools.core.facttemplates.FactTemplate) Test(org.junit.Test)

Aggregations

FieldTemplate (org.drools.core.facttemplates.FieldTemplate)3 KnowledgePackageImpl (org.drools.core.definitions.impl.KnowledgePackageImpl)2 FactTemplate (org.drools.core.facttemplates.FactTemplate)2 FactTemplateImpl (org.drools.core.facttemplates.FactTemplateImpl)2 FieldTemplateImpl (org.drools.core.facttemplates.FieldTemplateImpl)2 Test (org.junit.Test)2 StringReader (java.io.StringReader)1 KnowledgeBuilderImpl (org.drools.compiler.builder.impl.KnowledgeBuilderImpl)1 DroolsParserException (org.drools.compiler.compiler.DroolsParserException)1 ClassObjectType (org.drools.core.base.ClassObjectType)1 InternalKnowledgePackage (org.drools.core.definitions.InternalKnowledgePackage)1 Fact (org.drools.core.facttemplates.Fact)1 FactTemplateObjectType (org.drools.core.facttemplates.FactTemplateObjectType)1 InternalReadAccessor (org.drools.core.spi.InternalReadAccessor)1 ObjectType (org.drools.core.spi.ObjectType)1 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)1