@SuppressWarnings({ "unchecked", "rawtypes" }) private StaticInjector<?> constructStaticMethodInjections(final Class<? extends Annotation> injectionAnnotation, final Class<?> currentClass) { List<Method> methodsToInject = null; for(Method eachMethod : currentClass.getDeclaredMethods()) { if (!Modifier.isStatic(eachMethod.getModifiers())) { continue; } if (this.getReferenceSet().isMemberAlreadyInitialized(eachMethod)) { continue; } if (eachMethod.isAnnotationPresent(injectionAnnotation)) { if (methodsToInject == null) { methodsToInject = new ArrayList<Method>(); } methodsToInject.add(eachMethod); } } if (methodsToInject == null || methodsToInject.size() == 0) { return null; } return new SpecificMethodInjector(this.getComponentKey(), this.getComponentImplementation(), currentMonitor(), this.useNames, this.consumeAllParameters, this.methodParams, methodsToInject.toArray(new Method[methodsToInject.size()])); }
@SuppressWarnings({ "rawtypes", "unchecked" }) private StaticInjector<?> constructStaticFieldInjections(final Class<? extends Annotation> injectionAnnotation, final Class<?> currentClass) { List<Field> fieldsToInject = null; for(Field eachField : currentClass.getDeclaredFields()) { if (!Modifier.isStatic(eachField.getModifiers())) { continue; } if (this.getReferenceSet().isMemberAlreadyInitialized(eachField)) { continue; } if (eachField.isAnnotationPresent(injectionAnnotation)) { if (fieldsToInject == null) { fieldsToInject = new ArrayList<Field>(); } fieldsToInject.add(eachField); } } if (fieldsToInject == null || fieldsToInject.size() == 0) { return null; } return new SpecificFieldInjector(this.getComponentKey(), this.getComponentImplementation(), currentMonitor(), this.useNames, this.consumeAllParameters, this.fieldParams, fieldsToInject.toArray(new Field[fieldsToInject.size()])); }
@SuppressWarnings({ "rawtypes", "unchecked" }) private StaticInjector<?> constructStaticFieldInjections(final Class<? extends Annotation> injectionAnnotation, final Class<?> currentClass) { List<Field> fieldsToInject = null; for(Field eachField : currentClass.getDeclaredFields()) { if (!Modifier.isStatic(eachField.getModifiers())) { continue; } if (this.getReferenceSet().isMemberAlreadyInitialized(eachField)) { continue; } if (eachField.isAnnotationPresent(injectionAnnotation)) { if (fieldsToInject == null) { fieldsToInject = new ArrayList<Field>(); } fieldsToInject.add(eachField); } } if (fieldsToInject == null || fieldsToInject.size() == 0) { return null; } return new SpecificFieldInjector(this.getComponentKey(), this.getComponentImplementation(), currentMonitor(), this.useNames, this.consumeAllParameters, this.fieldParams, fieldsToInject.toArray(new Field[fieldsToInject.size()])); }
@SuppressWarnings({ "unchecked", "rawtypes" }) private StaticInjector<?> constructStaticMethodInjections(final Class<? extends Annotation> injectionAnnotation, final Class<?> currentClass) { List<Method> methodsToInject = null; for(Method eachMethod : currentClass.getDeclaredMethods()) { if (!Modifier.isStatic(eachMethod.getModifiers())) { continue; } if (this.getReferenceSet().isMemberAlreadyInitialized(eachMethod)) { continue; } if (eachMethod.isAnnotationPresent(injectionAnnotation)) { if (methodsToInject == null) { methodsToInject = new ArrayList<Method>(); } methodsToInject.add(eachMethod); } } if (methodsToInject == null || methodsToInject.size() == 0) { return null; } return new SpecificMethodInjector(this.getComponentKey(), this.getComponentImplementation(), currentMonitor(), this.useNames, this.consumeAllParameters, this.methodParams, methodsToInject.toArray(new Method[methodsToInject.size()])); }
@Override public T getComponentInstance(final PicoContainer container, final Type into) { if (getReferenceSet() != null) { //The individual static injectors decide //if a static member has already been injected or not. for (StaticInjector<?> staticInjectors : wrappedInjectors) { staticInjectors.injectStatics(container, into, getReferenceSet()); } } return super.getComponentInstance(container, into); }
@Override public T getComponentInstance(final PicoContainer container, final Type into) { if (getReferenceSet() != null) { //The individual static injectors decide //if a static member has already been injected or not. for (StaticInjector<?> staticInjectors : wrappedInjectors) { staticInjectors.injectStatics(container, into, getReferenceSet()); } } return super.getComponentInstance(container, into); }