br.com.objectos.auto.AutoFunctionalProcessor Maven / Gradle / Ivy
The newest version!
/*
* AutoFunctionalProcessor.java criado em 29/10/2014
*
* Propriedade de Objectos Fábrica de Software LTDA.
* Reprodução parcial ou total proibida.
*/
package br.com.objectos.auto;
import java.util.Optional;
import javax.annotation.processing.Processor;
import br.com.objectos.code.AbstractAnnotationProcessor;
import br.com.objectos.code.Artifact;
import br.com.objectos.code.Artifact.Builder;
import br.com.objectos.code.Configuration;
import br.com.objectos.code.MethodInfo;
import br.com.objectos.code.TypeInfo;
import br.com.objectos.metainf.Services;
/**
* @author [email protected] (Marcio Endo)
*/
@Services(Processor.class)
public class AutoFunctionalProcessor extends AbstractAnnotationProcessor {
@Override
protected Configuration configuration() {
return Configuration.builder()
.addAnnotationType(AutoFunctional.class)
.addMethodInfoArtifactGenerator(this::generate)
.build();
}
private Artifact generate(TypeInfo typeInfo, MethodInfo methodInfo) {
Builder builder = Artifact.builder();
Optional predicate = IsPredicateCanvas.toArtifact(typeInfo, methodInfo);
predicate.ifPresent(builder::addArtifact);
Optional function = ToFunctionCanvas.toArtifact(typeInfo, methodInfo);
function.ifPresent(builder::addArtifact);
return builder.build();
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy