@Override public final Artifact generate() { return Artifact.empty(); }
Artifact toArtifact(TypeSpec type) { JavaFile javaFile = typeInfo.toJavaFile(type); return Artifact.of(javaFile); }
@Override public void writeTo(Path path) { for (Artifact artifact : list) { artifact.writeTo(path); } }
private Artifact execute(Iterable<? extends Plugin> pluginList) { Artifact.Builder artifactList = Artifact.builder(); executePluginList(pluginList); artifactList.addArtifact(executeMain()); executeArtifactActionList(artifactList); return artifactList.build(); }
@Override protected void execute(ProcessingEnvironment processingEnv) { for (Artifact artifact : list) { artifact.execute(processingEnv); } }
public static List<Artifact> toArtifactList(Artifact artifact) { return artifact.toArtifactList(); }
@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()); }
private Artifact txt(TypeInfo typeInfo, String message) { return Artifact.peerResource(typeInfo, "txt") .contents(message) .build(); }
@Override public final Artifact generate() { pojoClass.onExecute(builder); builder.onExecute(); Artifact.Builder artifactList = Artifact.builder(); pojoClass.accept(artifactList); builder.accept(artifactList); for (ArtifactAction action : artifactActionList) { artifactList.addArtifact(action.execute(pojoInfo)); } return artifactList.build(); }
protected void action(Artifact artifact) { artifact.execute(processingEnv); }
@Override List<Artifact> toArtifactList() { ImmutableList.Builder<Artifact> list = ImmutableList.builder(); for (Artifact artifact : this.list) { list.addAll(artifact.toArtifactList()); } return list.build(); }
@Override public Artifact generate(Class<?> generator, Iterable<Plugin> pluginList) { return annotationInfo.simpleTypeInfoValue("superclass") .flatMap(SimpleTypeInfo::typeInfo) .map(typeInfo -> generate(generator, pluginList, typeInfo)) .orElse(Artifact.empty()); }
private Artifact generate(TypeInfo typeInfo) { ClassPath classPath = ClassPath.builder() .addJarOf(getClass()) .build(); ProcessorCompiler compiler = classPath.processorCompiler(processingEnv); String message = compiler .compile(typeInfo) .methodInfo("get") .invoke() .invoke(Methods.toStringMethod()) .returnValueAs(String.class); return Artifact.builder() .addArtifact(iface(typeInfo, message)) .addArtifact(txt(typeInfo, message)) .build(); }
public Artifact toArtifact(TypeSpec type) { JavaFile file = JavaFile.builder(packageName(), type) .skipJavaLangImports(true) .build(); return Artifact.of(file); }
@Override public void peek(Artifact artifact) { Path path = outputDirectory.toFile().toPath(); artifact.writeTo(path); }
protected void action(Artifact artifact) { artifact.execute(processingEnv); }
private Artifact methodInfo(TypeInfo typeInfo, MethodInfo methodInfo) { methodInfoList.add(methodInfo); methodInfoListenerSet.forEach(listener -> listener.onMethodInfo(methodInfo)); return Artifact.empty(); }
public Artifact generate() { BuilderDsl dsl = new BuilderDsl(naming); BuilderImpl impl = new BuilderImpl(naming); dsl.prepare(generatedBy); impl.prepare(generatedBy); List<Property> propertyList = pojoInfo.propertyList0(); for (Property property : propertyList) { dsl.accept(property); impl.accept(property); } return Artifact.builder() .addArtifact(pojoInfo.toArtifact(dsl.generate())) .addArtifact(pojoInfo.toArtifact(impl.generate())) .build(); }
private Artifact iface(TypeInfo typeInfo, String message) { ClassName className = typeInfo.classNameSuffix("Message"); TypeSpec typeSpec = TypeSpec.interfaceBuilder(className) .addAnnotation(AnnotationSpec.builder(Message.class) .addMember("value", "$S", message) .build()) .build(); JavaFile javaFile = typeInfo.toJavaFile(typeSpec); return Artifact.of(javaFile); }
void execute(Artifact artifact) { artifact.execute(processingEnv.unwrap()); }