private static List<? extends TypeMirror> getInterceptors(RouterRegex regex) { try { regex.interceptors(); } catch (MirroredTypesException mte) { return mte.getTypeMirrors(); } return null; }
private static List<? extends TypeMirror> getInterface(RouterService service) { try { service.interfaces(); } catch (MirroredTypesException mte) { return mte.getTypeMirrors(); } return null; }
private static List<? extends TypeMirror> getInterceptors(RouterUri scheme) { try { scheme.interceptors(); } catch (MirroredTypesException mte) { return mte.getTypeMirrors(); } return null; }
private static List<? extends TypeMirror> getInterceptors(RouterPage page) { try { page.interceptors(); } catch (MirroredTypesException mte) { return mte.getTypeMirrors(); } return null; }
private void parseParams(Set<? extends Element> elements, Set<String> viewClassSet) { for (Element element : elements) { checkAnnotationValid(element, BGABadge.class); TypeElement classElement = (TypeElement) element; // 获取该注解的值 BGABadge badgeAnnotation = classElement.getAnnotation(BGABadge.class); try { badgeAnnotation.value(); } catch (MirroredTypesException e) { List<? extends TypeMirror> typeMirrors = e.getTypeMirrors(); for (TypeMirror typeMirror : typeMirrors) { DeclaredType classTypeMirror = (DeclaredType) typeMirror; TypeElement classTypeElement = (TypeElement) classTypeMirror.asElement(); String qualifiedName = classTypeElement.getQualifiedName().toString(); viewClassSet.add(qualifiedName); } } } }
private static Matcher<Tree> shouldAllow(RestrictedApi api) { try { return Matchers.hasAnyAnnotation(api.whitelistAnnotations()); } catch (MirroredTypesException e) { return Matchers.hasAnyAnnotation(e.getTypeMirrors()); } }
private static Matcher<Tree> shouldAllowWithWarning(RestrictedApi api) { try { return Matchers.hasAnyAnnotation(api.whitelistWithWarningAnnotations()); } catch (MirroredTypesException e) { return Matchers.hasAnyAnnotation(e.getTypeMirrors()); } } }
private TypeName[] combineInterceptors(TypeElement type) { ArrayList<TypeName> interceptors = new ArrayList<>(); RouteInterceptors routeInterceptors = type.getAnnotation(RouteInterceptors.class); if (routeInterceptors != null) { try { Class[] value = routeInterceptors.value(); for (Class item : value) { interceptors.add(ClassName.get(item)); } } catch (MirroredTypesException mirrored) { List<? extends TypeMirror> typeMirrors = mirrored.getTypeMirrors(); for (TypeMirror mirror : typeMirrors) { interceptors.add(ClassName.get(mirror)); } } } return interceptors.toArray(new TypeName[interceptors.size()]); }
@SuppressWarnings("unchecked") public List<DeclaredType> getClassArrayFromAnnotationMethod(Supplier<Class<?>[]> supplier) { // JDK suggested way of getting type mirrors, do not waste time here, // just move on try { supplier.get(); } catch (MirroredTypesException e) { // types WILL be declared return (List<DeclaredType>) e.getTypeMirrors(); } return Collections.emptyList(); }
public TypeMirror[] getValueTypeMirrors(Consumer<A> fieldAccessor) { try { fieldAccessor.accept(originAnnotation); } catch (javax.lang.model.type.MirroredTypesException mte) { List<? extends TypeMirror> typeMirrors = mte.getTypeMirrors(); TypeMirror[] result = new TypeMirror[typeMirrors.size()]; for (int i = 0; i < typeMirrors.size(); i++) { result[i] = typeMirrors.get(i); } return result; } return null; }
@SuppressWarnings("unchecked") public static <T extends Annotation> List<TypeMirror> getAnnotationClassArray( Elements elements, T anno, Function<T, Class<?>[]> func) { try { return Arrays.stream(func.apply(anno)) .<TypeMirror> map(c -> elements.getTypeElement(c.getCanonicalName()).asType()) .collect(Collectors.toList()); } catch (MirroredTypesException e) { return (List<TypeMirror>) e.getTypeMirrors(); } }
private static List<TypeName> getSuperInterfaces(HasUpdateAction annotation) { try { annotation.superInterfaces(); } catch (MirroredTypesException e) { return e.getTypeMirrors().stream().map(ClassName::get).collect(Collectors.toList()); } return Arrays.asList(); }
@SuppressWarnings("unchecked") private List<TypeMirror> getParameters(RoutableActivity annotation) { try { annotation.params(); // TODO get forResult } catch (MirroredTypesException e) { return (List<TypeMirror>) e.getTypeMirrors(); } return null; }
private static List<TypeName> getSuperInterfaces(HasUpdateAction annotation) { try { annotation.superInterfaces(); } catch (MirroredTypesException e) { return e.getTypeMirrors().stream().map(ClassName::get).collect(Collectors.toList()); } return Arrays.asList(); }
@SuppressWarnings("unchecked") private List<TypeMirror> getParameters(RoutableView annotation) { try { annotation.params(); // TODO get forResult } catch (MirroredTypesException e) { return (List<TypeMirror>) e.getTypeMirrors(); } return null; }
private Stream<TypeElement> getTargetClasses(InspectorFactory factory) { try { factory.include(); } catch (MirroredTypesException e) { //noinspection Convert2Lambda this doesn't work on CI as a lambda/method ref ಠ_ಠ return e.getTypeMirrors() .stream() .map((Function<TypeMirror, String>) TypeMirror::toString) .map(name -> elementUtils.getTypeElement(name)); } throw new RuntimeException( "Could not inspect factory includes. Java annotation processing is weird."); }
public static List<String> classesToClassNames(ImportDesc desc){ List<String> types = null; //read Class<?> in compile time is wrong. see https://area-51.blog/2009/02/13/getting-class-values-from-annotations-in-an-annotationprocessor/. try { desc.classes(); }catch (MirroredTypesException mte){ List<? extends TypeMirror> mirrors = mte.getTypeMirrors(); types = convertToClassname(mirrors, null); } return types; }
public static List<String> classesToClassNames(ImportDesc desc){ List<String> types = null; //read Class<?> in compile time is wrong. see https://area-51.blog/2009/02/13/getting-class-values-from-annotations-in-an-annotationprocessor/. try { desc.classes(); }catch (MirroredTypesException mte){ List<? extends TypeMirror> mirrors = mte.getTypeMirrors(); types = convertToClassname(mirrors, null); } return types; }
private static Matcher<Tree> shouldAllow(RestrictedApi api) { try { return Matchers.hasAnyAnnotation(api.whitelistAnnotations()); } catch (MirroredTypesException e) { return Matchers.hasAnyAnnotation(e.getTypeMirrors()); } }
private static Matcher<Tree> shouldAllowWithWarning(RestrictedApi api) { try { return Matchers.hasAnyAnnotation(api.whitelistWithWarningAnnotations()); } catch (MirroredTypesException e) { return Matchers.hasAnyAnnotation(e.getTypeMirrors()); } } }