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. } } }
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. } } }
private void addFactAssignmentFieldIntoFactAssignmentField(FactAssignmentField factAssignmentField, int times) { if (times > 0) { FactAssignmentField innerFactAssignmentField = createFactAssignmentField(); factAssignmentField.getFact().getFieldData().add(innerFactAssignmentField); addFactAssignmentFieldIntoFactAssignmentField(innerFactAssignmentField, --times); } }
@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()); }