in src/main/java/org/apache/sling/models/impl/model/AbstractInjectableElement.java [339:355]
public boolean isOptional(InjectAnnotationProcessor annotationProcessor) {
DefaultInjectionStrategy injectionStrategy = this.injectionStrategy;
boolean isOptional = this.isOptional;
boolean isRequired = this.isRequired;
// evaluate annotationProcessor (which depends on the adapter)
if (annotationProcessor != null) {
isOptional = getOptional(getAnnotatedElement(), annotationProcessor);
isRequired = getRequired(getAnnotatedElement(), annotationProcessor);
injectionStrategy = getInjectionStrategy(element, annotationProcessor, defaultInjectionStrategy);
}
if (injectionStrategy == DefaultInjectionStrategy.REQUIRED) {
return isOptional;
} else {
return !isRequired;
}
}