Package org.derive4j.processor
Class DeriveConfigBuilder
- java.lang.Object
-
- org.derive4j.processor.DeriveConfigBuilder
-
final class DeriveConfigBuilder extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private javax.lang.model.element.ExecutableElement
arguments
private javax.lang.model.element.TypeElement
dataAnnotation
private javax.lang.model.element.TypeElement
deriveAnnotation
private javax.lang.model.element.ExecutableElement
deriveValue
private javax.lang.model.element.ExecutableElement
extend
private javax.lang.model.element.ExecutableElement
flavour
private static javax.lang.model.element.AnnotationValueVisitor<java.lang.Object,java.lang.Void>
getValue
private javax.lang.model.element.ExecutableElement
inClass
private javax.lang.model.element.ExecutableElement
instances
private javax.lang.model.element.ExecutableElement
instancesClasses
private javax.lang.model.element.ExecutableElement
instancesInClass
private javax.lang.model.element.ExecutableElement
instancesSelector
private javax.lang.model.element.ExecutableElement
make
private static java.util.function.Function<Make,java.util.stream.Stream<Make>>
makeDependencies
private javax.lang.model.element.ExecutableElement
withVisibility
-
Constructor Summary
Constructors Constructor Description DeriveConfigBuilder(javax.lang.model.util.Elements elements)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.function.Function<DeriveConfig,DeriveConfig>
addToDeriveConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
private java.util.stream.Stream<java.util.function.Function<DeriveConfig,DeriveConfig>>
annotationConfig(javax.lang.model.element.TypeElement typeElement, javax.lang.model.element.AnnotationMirror annotationMirror)
private static java.lang.String
autoGeneratedClassName(java.lang.String adtClassName)
private java.util.function.Function<DeriveConfig,DeriveConfig>
dataConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
(package private) com.squareup.javapoet.ClassName
deduceDerivedClassName(java.lang.String inClassAnnotationValue, javax.lang.model.element.TypeElement typeElement)
private static DeriveVisibility
deduceDeriveVisibility(javax.lang.model.element.TypeElement typeElement, Visibility visibility)
private static DeriveConfig
defaultConfig(javax.lang.model.element.TypeElement typeElement)
private java.util.function.Function<DeriveConfig,DeriveConfig>
deriveConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
private java.util.stream.Stream<java.util.function.Function<DeriveConfig,DeriveConfig>>
deriveConfigs(javax.lang.model.element.TypeElement typeElement, javax.lang.model.element.Element element, java.util.HashSet<javax.lang.model.element.AnnotationMirror> seenAnnotations)
private java.util.Optional<java.util.function.Function<DeriveConfig,DeriveConfig>>
extend(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
(package private) java.util.Optional<P2<javax.lang.model.element.TypeElement,DeriveConfig>>
findDeriveConfig(javax.lang.model.element.TypeElement typeElement)
private java.util.Optional<java.util.function.Function<DeriveConfig,DeriveConfig>>
inClass(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
private java.util.Optional<java.util.function.Function<java.util.Map<com.squareup.javapoet.ClassName,DerivedInstanceConfig>,java.util.Map<com.squareup.javapoet.ClassName,DerivedInstanceConfig>>>
instances(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
private static java.util.Set<Make>
makeWithDependencies(java.util.stream.Stream<Make> makes)
private java.util.Map<com.squareup.javapoet.ClassName,DerivedInstanceConfig>
parseInstanceConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> instanceAnnotation)
private static javax.lang.model.element.ExecutableElement
unsafeGetExecutableElement(javax.lang.model.element.TypeElement typeElement, java.lang.String methodName)
private java.util.Optional<java.util.function.Function<DeriveConfig,DeriveConfig>>
visibility(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
-
-
Field Detail
-
getValue
private static final javax.lang.model.element.AnnotationValueVisitor<java.lang.Object,java.lang.Void> getValue
-
makeDependencies
private static final java.util.function.Function<Make,java.util.stream.Stream<Make>> makeDependencies
-
dataAnnotation
private final javax.lang.model.element.TypeElement dataAnnotation
-
deriveAnnotation
private final javax.lang.model.element.TypeElement deriveAnnotation
-
flavour
private final javax.lang.model.element.ExecutableElement flavour
-
arguments
private final javax.lang.model.element.ExecutableElement arguments
-
deriveValue
private final javax.lang.model.element.ExecutableElement deriveValue
-
inClass
private final javax.lang.model.element.ExecutableElement inClass
-
withVisibility
private final javax.lang.model.element.ExecutableElement withVisibility
-
extend
private final javax.lang.model.element.ExecutableElement extend
-
make
private final javax.lang.model.element.ExecutableElement make
-
instances
private final javax.lang.model.element.ExecutableElement instances
-
instancesClasses
private final javax.lang.model.element.ExecutableElement instancesClasses
-
instancesInClass
private final javax.lang.model.element.ExecutableElement instancesInClass
-
instancesSelector
private final javax.lang.model.element.ExecutableElement instancesSelector
-
-
Method Detail
-
findDeriveConfig
java.util.Optional<P2<javax.lang.model.element.TypeElement,DeriveConfig>> findDeriveConfig(javax.lang.model.element.TypeElement typeElement)
-
deduceDerivedClassName
com.squareup.javapoet.ClassName deduceDerivedClassName(java.lang.String inClassAnnotationValue, javax.lang.model.element.TypeElement typeElement)
-
annotationConfig
private java.util.stream.Stream<java.util.function.Function<DeriveConfig,DeriveConfig>> annotationConfig(javax.lang.model.element.TypeElement typeElement, javax.lang.model.element.AnnotationMirror annotationMirror)
-
deriveConfigs
private java.util.stream.Stream<java.util.function.Function<DeriveConfig,DeriveConfig>> deriveConfigs(javax.lang.model.element.TypeElement typeElement, javax.lang.model.element.Element element, java.util.HashSet<javax.lang.model.element.AnnotationMirror> seenAnnotations)
-
deriveConfig
private java.util.function.Function<DeriveConfig,DeriveConfig> deriveConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
addToDeriveConfig
private java.util.function.Function<DeriveConfig,DeriveConfig> addToDeriveConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
visibility
private java.util.Optional<java.util.function.Function<DeriveConfig,DeriveConfig>> visibility(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
inClass
private java.util.Optional<java.util.function.Function<DeriveConfig,DeriveConfig>> inClass(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
extend
private java.util.Optional<java.util.function.Function<DeriveConfig,DeriveConfig>> extend(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
instances
private java.util.Optional<java.util.function.Function<java.util.Map<com.squareup.javapoet.ClassName,DerivedInstanceConfig>,java.util.Map<com.squareup.javapoet.ClassName,DerivedInstanceConfig>>> instances(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
parseInstanceConfig
private java.util.Map<com.squareup.javapoet.ClassName,DerivedInstanceConfig> parseInstanceConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> instanceAnnotation)
-
dataConfig
private java.util.function.Function<DeriveConfig,DeriveConfig> dataConfig(javax.lang.model.element.TypeElement typeElement, java.util.Map<? extends javax.lang.model.element.ExecutableElement,? extends javax.lang.model.element.AnnotationValue> elementValues)
-
defaultConfig
private static DeriveConfig defaultConfig(javax.lang.model.element.TypeElement typeElement)
-
deduceDeriveVisibility
private static DeriveVisibility deduceDeriveVisibility(javax.lang.model.element.TypeElement typeElement, Visibility visibility)
-
unsafeGetExecutableElement
private static javax.lang.model.element.ExecutableElement unsafeGetExecutableElement(javax.lang.model.element.TypeElement typeElement, java.lang.String methodName)
-
autoGeneratedClassName
private static java.lang.String autoGeneratedClassName(java.lang.String adtClassName)
-
-