if ( "org.drools.Pet".equals( type.getName() ) ) { assertEquals( 4, type.getFields().size() ); FactField owners = type.getField( "owners" ); assertTrue( owners != null && owners.getType().getSimpleName().equals( "Owner[]" ) && owners.getType().isArray() ); FactField twoDim = type.getField( "twoDimArray" ); assertTrue( twoDim != null && twoDim.getType().getSimpleName().equals( "Foo[][]" ) && twoDim.getType().isArray() ); FactField friends = type.getField( "friends" ); assertTrue( friends != null && friends.getType().getSimpleName().equals( "Pet[]" ) && friends.getType().isArray() ); FactField ages = type.getField( "ages" ); assertTrue( ages != null && ages.getType().getSimpleName().equals( "int[]" ) && ages.getType().isArray() );
assertEquals(0, ((FieldDefinition) parent.getField("field0")).getIndex()); assertEquals(1, ((FieldDefinition) parent.getField("field1")).getIndex()); assertEquals(2, ((FieldDefinition) parent.getField("field2")).getIndex()); FactType child = kBase.getFactType("org.drools.traits.test", "MultiInhPosTrait"); assertEquals(0, ((FieldDefinition) child.getField("field0")).getIndex()); assertEquals(1, ((FieldDefinition) child.getField("field1")).getIndex()); assertEquals(2, ((FieldDefinition) child.getField("mfield1")).getIndex()); assertEquals(3, ((FieldDefinition) child.getField("field2")).getIndex()); assertEquals(4, ((FieldDefinition) child.getField("mfield0")).getIndex()); assertEquals(0, ((FieldDefinition) parent.getField("field0")).getIndex()); assertEquals(1, ((FieldDefinition) parent.getField("field2")).getIndex()); assertEquals(2, ((FieldDefinition) parent.getField("field1")).getIndex()); child = kBase.getFactType("org.drools.traits.test", "MultiInhPosTrait"); assertEquals(0, ((FieldDefinition) child.getField("mfield0")).getIndex()); assertEquals(1, ((FieldDefinition) child.getField("field2")).getIndex()); assertEquals(2, ((FieldDefinition) child.getField("mfield1")).getIndex()); assertEquals(3, ((FieldDefinition) child.getField("field0")).getIndex()); assertEquals(4, ((FieldDefinition) child.getField("field1")).getIndex()); assertEquals(0, ((FieldDefinition) parent.getField("field1")).getIndex()); assertEquals(1, ((FieldDefinition) parent.getField("field2")).getIndex()); assertEquals(2, ((FieldDefinition) parent.getField("field0")).getIndex()); child = kBase.getFactType("org.drools.traits.test", "MultiInhPosTrait"); assertEquals(0, ((FieldDefinition) child.getField("field1")).getIndex()); assertEquals(1, ((FieldDefinition) child.getField("mfield0")).getIndex()); assertEquals(2, ((FieldDefinition) child.getField("field2")).getIndex()); assertEquals(3, ((FieldDefinition) child.getField("mfield1")).getIndex()); assertEquals(4, ((FieldDefinition) child.getField("field0")).getIndex());
assertEquals( "org.drools.compiler.test.definitions.Person", type.getSuperClass() ); FactField fld = type.getField( "bar" ); assertEquals( 2, fld.getIndex() ); assertEquals( String.class, fld.getType() );
public FactField getField(String name) { return new FactFieldAdapter(delegate.getField(name)); }
assertEquals( "event", bean.getMetaData().get( "role" ) ); FactField field = bean.getField( "name" ); assertNotNull( field ); assertEquals( 2, field.getFieldAnnotations().size() );
@Test public void testTypeDeclarationWithFieldMetadata() throws Exception { PackageDescr pkgDescr = new PackageDescr( "org.drools.compiler.test" ); TypeDeclarationDescr typeDescr = new TypeDeclarationDescr( "TypeWithFieldMeta" ); TypeFieldDescr f1 = new TypeFieldDescr( "field", new PatternDescr( "String" ) ); f1.addAnnotation("custom", null); typeDescr.addField( f1 ); pkgDescr.addTypeDeclaration( typeDescr ); KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl(); builder.addPackage(pkgDescr); assertFalse(builder.hasErrors()); InternalKnowledgePackage bp = builder.getPackage(pkgDescr.getName()); final FactType factType = bp.getFactType("org.drools.compiler.test.TypeWithFieldMeta"); assertNotNull( factType ); final FactField field = factType.getField( "field" ); assertNotNull( field ); final Map<String, Object> fieldMetaData = field.getMetaData(); assertNotNull("No field-level custom metadata got compiled", fieldMetaData); assertTrue("Field metadata does not include expected value", fieldMetaData.containsKey("custom")); }
FactField foo = type.getField( "foo" ); Object x = type.newInstance(); foo.set( x, "Hello World" );