@Override public FlowPropertyDefinitionBuilder getFlowPropertyDefinitionBuilder( String propertyName, Class<?> dataClass) { FlowPropertyDefinitionBuilder flowPropertyDefinitionBuilder = super.getFlowPropertyDefinitionBuilder(propertyName, dataClass); // TODO: seems HACK: is this really a good idea to special case this ( i.e. what about // persister? changelistener? etc. ) if (flowPropertyDefinitionBuilder != null) { flowPropertyDefinitionBuilder.initFlowPropertyValueProvider(this); } return flowPropertyDefinitionBuilder; }
@SuppressWarnings("unchecked") private <T> T get(Object object, String properties) { ReflectionFlowPropertyValueProvider reflectionFlowPropertyValueProvider = new ReflectionFlowPropertyValueProvider(object, properties, properties); Map<String, FlowPropertyDefinitionBuilder> flowPropertyDefinitions = reflectionFlowPropertyValueProvider.getFlowPropertyDefinitions(); Map.Entry<String, FlowPropertyDefinitionBuilder> entry = CUtilities.getFirst(flowPropertyDefinitions); FlowPropertyDefinitionBuilder flowPropertyDefinitionBuilder = entry.getValue(); return (T) reflectionFlowPropertyValueProvider.get( null, flowPropertyDefinitionBuilder.toFlowPropertyDefinition()); }