private FactAssignmentField createFactAssignmentField() { return new FactAssignmentField("matryoshkaDoll", "MatryoshkaDoll"); } }
public FactAssignmentFieldPopulator(Object factObject, FactAssignmentField field, TypeResolver resolver, ClassLoader classLoader) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { super(factObject, field.getName()); this.fact = resolver.resolveType(resolver.getFullTypeName(field.getFact().getType())).newInstance(); this.classLoader = classLoader; initSubFieldPopulators(field, resolver); }
FactAssignmentField factAssignmentField = new FactAssignmentField(); factAssignmentField.setName(name); factAssignmentField.setFact((Fact) context.convertAnother(factAssignmentField, Fact.class)); reader.moveUp();
@Test public void testFactAssignmentField() throws Exception { FactAssignmentField field = new FactAssignmentField(); field.setFact(new Fact()); when( typeResolver.resolveType(Matchers.<String>any()) ).thenReturn( Cheese.class ); FieldPopulator fieldPopulator = fieldPopulatorFactory.getFieldPopulator(field); assertNotNull(fieldPopulator); }
@Test public void testSimpleFields() throws Exception { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); TypeResolver typeResolver = new ClassTypeResolver(new HashSet<String>(),classLoader ); typeResolver.addImport("org.drools.ide.common.server.testscenarios.Cheese"); Mouse mouse = new Mouse(); FactAssignmentField factAssignmentField = new FactAssignmentField("cheese", "Cheese"); factAssignmentField.getFact().getFieldData().add(new FieldData("name", "Best cheddar EVER! (tm)")); FactAssignmentFieldPopulator factAssignmentFieldPopulator = new FactAssignmentFieldPopulator(mouse, factAssignmentField, typeResolver, classLoader); factAssignmentFieldPopulator.populate(new HashMap<String, Object>()); assertEquals("Best cheddar EVER! (tm)", mouse.getCheese().getName()); }
private void initSubFieldPopulators(FactAssignmentField field, TypeResolver resolver) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { FieldPopulatorFactory fieldPopulatorFactory = new FieldPopulatorFactory(fact, resolver, classLoader); for (Field subField : field.getFact().getFieldData()) { try { subFieldPopulators.add(fieldPopulatorFactory.getFieldPopulator(subField)); } catch (IllegalArgumentException e) { // This should never happen, but I don't trust myself or the legacy test scenarios we have. // If the field value is null then it is safe to ignore it. } } }
FactAssignmentField factAssignmentField = new FactAssignmentField(); factAssignmentField.setName(name); factAssignmentField.setFact((Fact) context.convertAnother(factAssignmentField, Fact.class)); reader.moveUp();
private void initSubFieldPopulators(FactAssignmentField field, TypeResolver resolver) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { FieldPopulatorFactory fieldPopulatorFactory = new FieldPopulatorFactory(fact, resolver, classLoader); for (Field subField : field.getFact().getFieldData()) { try { subFieldPopulators.add(fieldPopulatorFactory.getFieldPopulator(subField)); } catch (IllegalArgumentException e) { // This should never happen, but I don't trust myself or the legacy test scenarios we have. // If the field value is null then it is safe to ignore it. } } }
public FactAssignmentFieldPopulator(Object factObject, FactAssignmentField field, TypeResolver resolver, ClassLoader classLoader) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { super(factObject, field.getName()); this.fact = resolver.resolveType(resolver.getFullTypeName(field.getFact().getType())).newInstance(); this.classLoader = classLoader; initSubFieldPopulators(field, resolver); }
private void addFactAssignmentFieldIntoFactAssignmentField(FactAssignmentField factAssignmentField, int times) { if (times > 0) { FactAssignmentField innerFactAssignmentField = createFactAssignmentField(); factAssignmentField.getFact().getFieldData().add(innerFactAssignmentField); addFactAssignmentFieldIntoFactAssignmentField(innerFactAssignmentField, --times); } }
@Test public void testFactAssignmentField() throws Exception { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); TypeResolver typeResolver = new ClassTypeResolver(new HashSet<String>(),classLoader ); typeResolver.addImport("org.drools.ide.common.server.testscenarios.Cheese"); Mouse mouse = new Mouse(); FactAssignmentField factAssignmentField = new FactAssignmentField("cheese", "Cheese"); FactAssignmentFieldPopulator factAssignmentFieldPopulator = new FactAssignmentFieldPopulator(mouse, factAssignmentField, typeResolver, classLoader); factAssignmentFieldPopulator.populate(new HashMap<String, Object>()); assertNotNull(mouse.getCheese()); }