All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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