static boolean isMountSpec(@Nullable PsiClass psiClass) {
return psiClass != null && hasAnnotation(psiClass, equals(MountSpec.class.getName()));
}
@Override
public Set<Element> extract(RoundEnvironment roundEnvironment) {
return (Set<Element>) roundEnvironment.getElementsAnnotatedWith(MountSpec.class);
}
/**
* Create a {@link MountSpecModel} from the given {@link TypeElement} and an optional {@link
* DependencyInjectionHelper}.
*/
@Override
public MountSpecModel create(
Elements elements,
Types types,
TypeElement element,
Messager messager,
EnumSet<RunMode> runMode,
@Nullable DependencyInjectionHelper dependencyInjectionHelper,
@Nullable InterStageStore interStageStore) {
return new MountSpecModel(
element.getQualifiedName().toString(),
element.getAnnotation(MountSpec.class).value(),
DelegateMethodExtractor.getDelegateMethods(
element,
DELEGATE_METHOD_ANNOTATIONS,
INTER_STAGE_INPUT_ANNOTATIONS,
ImmutableList.<Class<? extends Annotation>>of(ShouldUpdate.class),
messager),
EventMethodExtractor.getOnEventMethods(
elements, element, INTER_STAGE_INPUT_ANNOTATIONS, messager, runMode),
TriggerMethodExtractor.getOnTriggerMethods(
elements, element, INTER_STAGE_INPUT_ANNOTATIONS, messager, runMode),
WorkingRangesMethodExtractor.getRegisterMethod(
element, INTER_STAGE_INPUT_ANNOTATIONS, messager),
WorkingRangesMethodExtractor.getRangesMethods(
elements, element, INTER_STAGE_INPUT_ANNOTATIONS, messager),
UpdateStateMethodExtractor.getOnUpdateStateMethods(
element, INTER_STAGE_INPUT_ANNOTATIONS, messager),
interStageStore == null
? ImmutableList.of()
: CachedPropNameExtractor.getCachedPropNames(
interStageStore, element.getQualifiedName()),
ImmutableList.copyOf(TypeVariablesExtractor.getTypeVariables(element)),
ImmutableList.copyOf(PropDefaultsExtractor.getPropDefaults(element)),
EventDeclarationsExtractor.getEventDeclarations(
elements, element, MountSpec.class, runMode),
JavadocExtractor.getClassJavadoc(elements, element),
AnnotationExtractor.extractValidAnnotations(element),
TagExtractor.extractTagsFromSpecClass(types, element, runMode),
JavadocExtractor.getPropJavadocs(elements, element),
element.getAnnotation(MountSpec.class).isPublic(),
dependencyInjectionHelper,
element.getAnnotation(MountSpec.class).isPureRender(),
element.getAnnotation(MountSpec.class).hasChildLithoViews(),
element.getAnnotation(MountSpec.class).poolSize(),
element.getAnnotation(MountSpec.class).canPreallocate(),
getMountType(elements, element, runMode),
SpecElementTypeDeterminator.determine(element),
element,
mMountSpecGenerator,
FieldsExtractor.extractFields(element),
BindDynamicValuesMethodExtractor.getOnBindDynamicValuesMethods(element, messager));
}