@Override String name() { return packageInfo.name(); }
@Override public List<AnnotationInfo> annotationInfoList() { return packageInfo.annotationInfoList(); }
@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; } }
Stream<ProtoTypeType> protoTypeStream() { return packageInfo.declaredTypeInfoStream() .flatMap(TypeInfo::declaredTypeInfoStream) .filter(type -> type.hasAnnotation(ProtoType.class)) .map(ProtoTypeType::of) .sorted((t1, t2) -> t1.tagName().compareTo(t2.tagName())); }
public JavaFile toJavaFile(TypeSpec typeSpec) { return JavaFile.builder(packageInfo().toString(), typeSpec) .skipJavaLangImports(true) .build(); }
default String qualifiedName() { return packageInfo().toQualifiedName(nameInfo()); }
private MethodSpec html5() { ClassName document = packageInfo.className(classSimpleName()); return MethodSpec.methodBuilder("html5") .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .addParameter(packageInfo.className("Html"), "html") .returns(document) .addStatement("$T.requireNonNull(html)", Objects.class) .addStatement("return new $T($T.html5(), html)", document, Doctype.class) .build(); }
public PackageInfo parentPackageInfo() { return new CorePackageInfo(parentName()); }
@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; } }
public static ForwardingPackageInfo of(PackageInfo packageInfo) { return new ForwardingPackageInfo( packageInfo, packageInfo.declaredTypeInfoStream().collect(MoreCollectors.toImmutableList())); }
public Artifact generate() { JavaFile javaFile = JavaFile.builder(packageInfo.toString(), type()) .skipJavaLangImports(true) .build(); return Artifact.of(javaFile); }
public String qualifiedName() { return packageInfo() .map(pkg -> pkg.toQualifiedName(nameInfo())) .orElse(nameInfo().toString()); }
@Override public String toString() { return name(); }
public String toQualifiedName(String name) { return name() + "." + name; }
@Override public final int hashCode() { return Objects.hash(name()); }
public boolean isJavaLang() { return "java.lang".equals(name()); }
public ClassName className(String simpleName) { return ClassName.get(name(), simpleName); }
public ClassName className(String simpleName, String... simpleNames) { return ClassName.get(name(), simpleName, simpleNames); }