Package org.derive4j.processor
Class DerivingProcessor
- java.lang.Object
-
- javax.annotation.processing.AbstractProcessor
-
- org.derive4j.processor.DerivingProcessor
-
- All Implemented Interfaces:
javax.annotation.processing.Processor
@AutoService(javax.annotation.processing.Processor.class) @SupportedAnnotationTypes("*") public final class DerivingProcessor extends javax.annotation.processing.AbstractProcessor
-
-
Field Summary
Fields Modifier and Type Field Description private AdtParseradtParserprivate DerivatorbuiltinDerivatorprivate java.util.Map<P2<com.squareup.javapoet.ClassName,java.util.Optional<java.lang.String>>,Derivator>derivatorsprivate DeriveConfigBuilderderiveConfigBuilderprivate DeriveUtilsImplderiveUtilsprivate java.util.List<Extension>extensionsprivate java.util.ArrayList<P2<java.lang.String,java.lang.RuntimeException>>remainingElementsprivate static java.util.Set<javax.lang.model.element.ElementKind>scannedElementKinds
-
Constructor Summary
Constructors Constructor Description DerivingProcessor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private IO<Unit>derivation(javax.lang.model.element.TypeElement element, DeriveConfig deriveConfig)private java.util.Map<com.squareup.javapoet.ClassName,P2<java.util.stream.Stream<DeriveMessage>,DerivedCodeSpec>>derivedInstances(AlgebraicDataType adt)private static java.util.stream.Stream<javax.lang.model.element.Element>findAllElements(java.util.stream.Stream<? extends javax.lang.model.element.Element> elements)javax.lang.model.SourceVersiongetSupportedSourceVersion()voidinit(javax.annotation.processing.ProcessingEnvironment processingEnv)private static java.util.Map<P2<com.squareup.javapoet.ClassName,java.util.Optional<java.lang.String>>,Derivator>loadDerivators(DeriveUtils deriveUtils)private static java.util.List<Extension>loadEextensions(DeriveUtils deriveUtils)private java.util.function.Function<DeriveMessage,IO<Unit>>mesagePrint(javax.lang.model.element.TypeElement element)private voidprintErrorMessage(java.lang.String typeElement, java.lang.Throwable error)booleanprocess(java.util.Set<? extends javax.lang.model.element.TypeElement> annotations, javax.annotation.processing.RoundEnvironment roundEnv)private static java.lang.StringshowStackTrace(java.lang.Throwable t)private com.squareup.javapoet.TypeSpec.BuildertoTypeSpec(DeriveConfig deriveConfig, com.squareup.javapoet.ClassName targetClassName, DerivedCodeSpec codeSpec)
-
-
-
Field Detail
-
scannedElementKinds
private static final java.util.Set<javax.lang.model.element.ElementKind> scannedElementKinds
-
remainingElements
private final java.util.ArrayList<P2<java.lang.String,java.lang.RuntimeException>> remainingElements
-
deriveUtils
private DeriveUtilsImpl deriveUtils
-
builtinDerivator
private Derivator builtinDerivator
-
adtParser
private AdtParser adtParser
-
deriveConfigBuilder
private DeriveConfigBuilder deriveConfigBuilder
-
extensions
private java.util.List<Extension> extensions
-
-
Method Detail
-
getSupportedSourceVersion
public javax.lang.model.SourceVersion getSupportedSourceVersion()
- Specified by:
getSupportedSourceVersionin interfacejavax.annotation.processing.Processor- Overrides:
getSupportedSourceVersionin classjavax.annotation.processing.AbstractProcessor
-
init
public void init(javax.annotation.processing.ProcessingEnvironment processingEnv)
- Specified by:
initin interfacejavax.annotation.processing.Processor- Overrides:
initin classjavax.annotation.processing.AbstractProcessor
-
process
public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement> annotations, javax.annotation.processing.RoundEnvironment roundEnv)- Specified by:
processin interfacejavax.annotation.processing.Processor- Specified by:
processin classjavax.annotation.processing.AbstractProcessor
-
derivation
private IO<Unit> derivation(javax.lang.model.element.TypeElement element, DeriveConfig deriveConfig)
-
mesagePrint
private java.util.function.Function<DeriveMessage,IO<Unit>> mesagePrint(javax.lang.model.element.TypeElement element)
-
toTypeSpec
private com.squareup.javapoet.TypeSpec.Builder toTypeSpec(DeriveConfig deriveConfig, com.squareup.javapoet.ClassName targetClassName, DerivedCodeSpec codeSpec)
-
derivedInstances
private java.util.Map<com.squareup.javapoet.ClassName,P2<java.util.stream.Stream<DeriveMessage>,DerivedCodeSpec>> derivedInstances(AlgebraicDataType adt)
-
printErrorMessage
private void printErrorMessage(java.lang.String typeElement, java.lang.Throwable error)
-
loadEextensions
private static java.util.List<Extension> loadEextensions(DeriveUtils deriveUtils)
-
loadDerivators
private static java.util.Map<P2<com.squareup.javapoet.ClassName,java.util.Optional<java.lang.String>>,Derivator> loadDerivators(DeriveUtils deriveUtils)
-
findAllElements
private static java.util.stream.Stream<javax.lang.model.element.Element> findAllElements(java.util.stream.Stream<? extends javax.lang.model.element.Element> elements)
-
showStackTrace
private static java.lang.String showStackTrace(java.lang.Throwable t)
-
-