throws InstantiationException, AttributeBindingException return set(object, values, true, filteringAnnotations);
/** * A version of {@link #set(Object, Map, Class...)} that can optionally skip * {@link Required} attribute checking. For experts only. */ @SafeVarargs public static <T> Map<String, Object> set(T object, Map<String, Object> values, boolean checkRequired, Class<? extends Annotation>... filteringAnnotations) throws InstantiationException, AttributeBindingException { return set(object, values, checkRequired, filteringAnnotations.length > 0 ? new AllAnnotationsPresentPredicate( filteringAnnotations) : Predicates.<Field> alwaysTrue()); }
public void passivate(IProcessingComponent processingComponent, String parameter) { // Reset values of @Input @Processing attributes back to original values try { // Here's a little hack: we need to disable checking // for required attributes, otherwise, we won't be able // to reset @Required input attributes to null final Map<String, Object> originalAttributes = resetValues .get(new ReferenceEquality(processingComponent)); if (originalAttributes != null) { AttributeBinder.set(processingComponent, originalAttributes, false, Input.class, Processing.class); } } catch (Exception e) { throw new ProcessingException("Could not reset attribute values", e); } } }
/** * Performs all life cycle actions required before processing starts. */ public static void beforeProcessing(IProcessingComponent processingComponent, Map<String, Object> attributes) throws ProcessingException { try { // Check if we need to do binding. if (processingComponent.getClass().getAnnotation(Bindable.class) != null) { AttributeBinder.set(processingComponent, attributes, Input.class, Processing.class); } processingComponent.beforeProcessing(); } catch (final InstantiationException e) { throw new ProcessingException("Attribute binding failed: " + e.getMessage(), e); } catch (final AttributeBindingException e) { throw new ProcessingException("Attribute binding failed: " + e.getMessage(), e); } }
AttributeBinder.set(component, inputAttributes, false, Input.class, Processing.class);
/** * Performs all life cycle actions required upon initialization. */ public static void init(IProcessingComponent processingComponent, Map<String, Object> inputAttributes, Map<String, Object> outputAttributes, boolean checkRequiredAttributes, IControllerContext context) throws ComponentInitializationException { try { AttributeBinder.set(processingComponent, inputAttributes, checkRequiredAttributes, Input.class, Init.class); processingComponent.init(context); AttributeBinder.get(processingComponent, outputAttributes, Output.class, Init.class); } catch (final InstantiationException e) { throw new ComponentInitializationException("Attribute binding failed", e); } }
if (clazz.isAnnotationPresent(Bindable.class)) set(value, values, false, predicate);
.set(instance, initAttributes, false, Input.class);
AttributeBinder.set(component, initAttrs, false, predicate);