private static Collection<Class<? extends Annotation>> extractQualifiersAvoidingNPEWhenCreatingQualifierExtractorFrom( final InjectableDataExtractor extractor, final Field field ) { if ( null == extractor ) return Collections.emptyList(); return extractor.extractQualifiersFrom( field ); } }
static void populateWithProvidableFields(InjectableDataExtractor extractor, Class<?> targetClazz, List<ProvidableField> providableFields ) { for ( final Field field : targetClazz.getDeclaredFields() ) { final Collection<Class<? extends Annotation>> qualifiers = extractQualifiersAvoidingNPEWhenCreatingQualifierExtractorFrom( extractor, field ); if ( extractor.isAManyElementsProvider( field ) ) providableFields.add( ManyElementsProvidableField.from( qualifiers, field ) ); else if ( extractor.isASingleElementProvider( field ) ) providableFields.add( SingleElementProvidableField.from( qualifiers, field ) ); } }
private InjectableDataExtractor loadInjectableDataExtractor() { final Iterable<FieldQualifierExtractor> extractors = loadAll(FieldQualifierExtractor.class); return new InjectableDataExtractor( extractors ); }