@Override public String toString() { return name(); }
@Override public List<AnnotationInfo> annotationInfoList() { return packageInfo.annotationInfoList(); }
private static PackageInfoBuilder builder() { return PackageInfo.builder(); }
@Override protected List<AnnotationInfo> compute() { List<AnnotationInfo> list = Collections.emptyList(); if (!packageInfo().isJavaLang() && !packageInfo().hasName("java.lang.annotation")) { list = AnnotationMirrorWrapper.wrapAllAndList(processingEnv, element()); } return list; } }
@AutoFunctional boolean isJavaLang() { return packageInfo().isJavaLang(); }
@Override protected final Artifact generate(PackageInfo packageInfo, Iterable<Plugin> pluginList) { return packageInfo.annotationInfo(annotationType()) .map(this::generatorSupplier) .map(info -> info.generate(getClass(), pluginList)) .orElse(Artifact.empty()); }
public static ForwardingPackageInfo of(PackageInfo packageInfo) { return new ForwardingPackageInfo( packageInfo, packageInfo.declaredTypeInfoStream().collect(MoreCollectors.toImmutableList())); }
@Override protected final Artifact generate(PackageInfo packageInfo, Iterable<Plugin> pluginList) { return packageInfo.annotationInfoStream() .filter(ann -> ann.qualifiedName().equals(annotationType().getName())) .flatMap(this::generatorStream) .map(info -> info.generate(getClass(), pluginList)) .collect(Artifact.collector()); }
public boolean shouldKeep(PackageInfo thatPackageInfo) { boolean samePackage = packageInfo().equals(thatPackageInfo); return !samePackage || name().or(NameInfo.of()).isQualifiedName(); }
@Override protected AnnotationInfoMap compute() { AnnotationInfoMap map = AnnotationInfoMap.emptyMap(); if (!packageInfo().isJavaLang() && !packageInfo().hasName("java.lang.annotation")) { map = AnnotationMirrorWrapper.wrapAllAndMap(processingEnv(), element()); } return map; } }
@Override String name() { return packageInfo.name(); }
public String toQualifiedName(String name) { return name() + "." + name; }
@Override public final int hashCode() { return Objects.hashCode(name()); }
public boolean hasName(String name) { return name().equals(name); }
public boolean isJavaLang() { return "java.lang".equals(name()); }
ClassName toClassName(PackageInfo packageInfo) { int size = nameList.size(); Preconditions.checkArgument(size > 0); String packageName = packageInfo.name(); String first = nameList.get(0); String[] rest = nameList.subList(1, size).toArray(new String[] {}); return ClassName.get(packageName, first, rest); }
public PackageInfo packageInfo(String qualifiedName) { return packageInfoList.stream() .filter(pkg -> pkg.name().equals(qualifiedName)) .findFirst() .orElseThrow(() -> new NoSuchElementException(qualifiedName)); }
@Override public MustacheObject toMustache() { return Mustaches.toMustacheHelper() .add("name", name()) .toMustache(); }