Package org.derive4j.processor
Class AdtParser
- java.lang.Object
-
- org.derive4j.processor.AdtParser
-
final class AdtParser extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private DeriveUtils
deriveUtils
private javax.lang.model.util.Elements
elements
private javax.lang.model.util.Types
types
-
Constructor Summary
Constructors Constructor Description AdtParser(DeriveUtils deriveUtils)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.Optional<javax.lang.model.element.AnnotationMirror>
fieldNamesAnnotation(javax.lang.model.element.VariableElement visitorArg)
private boolean
isEqualHashcodeToString(javax.lang.model.element.ExecutableElement executableElement)
private java.util.List<javax.lang.model.type.TypeVariable>
methodTypeVariables(javax.lang.model.type.ExecutableType method)
(package private) DeriveResult<AlgebraicDataType>
parseAlgebraicDataType(javax.lang.model.element.TypeElement adtTypeElement, DeriveConfig deriveConfig)
private DeriveResult<DataConstruction>
parseDataConstruction(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables, javax.lang.model.element.ExecutableElement adtAcceptMethod, javax.lang.model.type.TypeVariable adtAcceptMethodReturnType)
private DeriveResult<DataConstruction>
parseDataConstructionMultipleAgs(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables, java.util.List<P2<javax.lang.model.element.VariableElement,javax.lang.model.type.DeclaredType>> caseHandlers)
private DeriveResult<DataConstruction>
parseDataConstructionOneArg(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables, javax.lang.model.element.VariableElement visitorArg, javax.lang.model.type.DeclaredType visitorType)
private DeriveResult<DataConstructor>
parseDataConstructor(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeParameters, DataDeconstructor deconstructor, int index)
private java.util.Optional<TypeRestriction>
parseGadtConstraint(java.lang.String argName, javax.lang.model.type.TypeMirror paramType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables)
private DeriveResult<java.util.List<DataArgument>>
validateFieldTypeUniformity(DataConstruction construction)
-
-
-
Field Detail
-
types
private final javax.lang.model.util.Types types
-
elements
private final javax.lang.model.util.Elements elements
-
deriveUtils
private final DeriveUtils deriveUtils
-
-
Constructor Detail
-
AdtParser
AdtParser(DeriveUtils deriveUtils)
-
-
Method Detail
-
parseAlgebraicDataType
DeriveResult<AlgebraicDataType> parseAlgebraicDataType(javax.lang.model.element.TypeElement adtTypeElement, DeriveConfig deriveConfig)
-
validateFieldTypeUniformity
private DeriveResult<java.util.List<DataArgument>> validateFieldTypeUniformity(DataConstruction construction)
-
isEqualHashcodeToString
private boolean isEqualHashcodeToString(javax.lang.model.element.ExecutableElement executableElement)
-
parseDataConstruction
private DeriveResult<DataConstruction> parseDataConstruction(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables, javax.lang.model.element.ExecutableElement adtAcceptMethod, javax.lang.model.type.TypeVariable adtAcceptMethodReturnType)
-
methodTypeVariables
private java.util.List<javax.lang.model.type.TypeVariable> methodTypeVariables(javax.lang.model.type.ExecutableType method)
-
parseDataConstructionOneArg
private DeriveResult<DataConstruction> parseDataConstructionOneArg(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables, javax.lang.model.element.VariableElement visitorArg, javax.lang.model.type.DeclaredType visitorType)
-
parseDataConstructionMultipleAgs
private DeriveResult<DataConstruction> parseDataConstructionMultipleAgs(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables, java.util.List<P2<javax.lang.model.element.VariableElement,javax.lang.model.type.DeclaredType>> caseHandlers)
-
parseDataConstructor
private DeriveResult<DataConstructor> parseDataConstructor(javax.lang.model.type.DeclaredType adtDeclaredType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeParameters, DataDeconstructor deconstructor, int index)
-
fieldNamesAnnotation
private java.util.Optional<javax.lang.model.element.AnnotationMirror> fieldNamesAnnotation(javax.lang.model.element.VariableElement visitorArg)
-
parseGadtConstraint
private java.util.Optional<TypeRestriction> parseGadtConstraint(java.lang.String argName, javax.lang.model.type.TypeMirror paramType, java.util.List<javax.lang.model.type.TypeVariable> adtTypeVariables)
-
-