Package org.derive4j.processor
Class GettersDerivator
- java.lang.Object
-
- org.derive4j.processor.GettersDerivator
-
-
Field Summary
Fields Modifier and Type Field Description private DeriveUtils
deriveUtils
-
Constructor Summary
Constructors Constructor Description GettersDerivator(DeriveUtils deriveUtils)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.String
asParameterName(AlgebraicDataType adt)
DeriveResult<DerivedCodeSpec>
derive(AlgebraicDataType adt)
private DerivedCodeSpec
deriveGetter(DataArgument field, AlgebraicDataType adt)
private static DerivedCodeSpec
functionsDispatchLensGetterImpl(AlgebraicDataType adt, java.lang.String arg, DataArgument field)
private static DerivedCodeSpec
functionsDispatchOptionalGetterImpl(OptionModel optionModel, AlgebraicDataType adt, java.lang.String arg, java.util.List<DataConstructor> constructors, DataArgument field, javax.lang.model.type.DeclaredType returnType)
private DerivedCodeSpec
generateLensGetter(DataArgument field, AlgebraicDataType adt)
private DerivedCodeSpec
generateOptionalGetter(DataArgument field, AlgebraicDataType adt)
private static com.squareup.javapoet.MethodSpec.Builder
getterBuilder(AlgebraicDataType adt, java.lang.String arg, DataArgument field, javax.lang.model.type.TypeMirror type)
private static boolean
isLens(DataArgument field, java.util.List<DataConstructor> constructors)
private static java.lang.String
lensGetterLambda(java.lang.String arg, AlgebraicDataType adt, DataArgument field)
private static com.squareup.javapoet.CodeBlock
optionalGetterLambdas(java.lang.String arg, OptionModel optionModel, java.util.List<DataConstructor> constructors, DataArgument field)
private DerivedCodeSpec
visitorDispatchLensGetterImpl(AlgebraicDataType adt, java.lang.String arg, javax.lang.model.type.DeclaredType visitorType, DataArgument field)
private DerivedCodeSpec
visitorDispatchOptionalGetterImpl(OptionModel optionModel, AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors, java.lang.String arg, DataArgument field, javax.lang.model.type.DeclaredType returnType)
-
-
-
Field Detail
-
deriveUtils
private final DeriveUtils deriveUtils
-
-
Constructor Detail
-
GettersDerivator
GettersDerivator(DeriveUtils deriveUtils)
-
-
Method Detail
-
derive
public DeriveResult<DerivedCodeSpec> derive(AlgebraicDataType adt)
-
deriveGetter
private DerivedCodeSpec deriveGetter(DataArgument field, AlgebraicDataType adt)
-
generateOptionalGetter
private DerivedCodeSpec generateOptionalGetter(DataArgument field, AlgebraicDataType adt)
-
visitorDispatchOptionalGetterImpl
private DerivedCodeSpec visitorDispatchOptionalGetterImpl(OptionModel optionModel, AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors, java.lang.String arg, DataArgument field, javax.lang.model.type.DeclaredType returnType)
-
generateLensGetter
private DerivedCodeSpec generateLensGetter(DataArgument field, AlgebraicDataType adt)
-
visitorDispatchLensGetterImpl
private DerivedCodeSpec visitorDispatchLensGetterImpl(AlgebraicDataType adt, java.lang.String arg, javax.lang.model.type.DeclaredType visitorType, DataArgument field)
-
functionsDispatchOptionalGetterImpl
private static DerivedCodeSpec functionsDispatchOptionalGetterImpl(OptionModel optionModel, AlgebraicDataType adt, java.lang.String arg, java.util.List<DataConstructor> constructors, DataArgument field, javax.lang.model.type.DeclaredType returnType)
-
getterBuilder
private static com.squareup.javapoet.MethodSpec.Builder getterBuilder(AlgebraicDataType adt, java.lang.String arg, DataArgument field, javax.lang.model.type.TypeMirror type)
-
optionalGetterLambdas
private static com.squareup.javapoet.CodeBlock optionalGetterLambdas(java.lang.String arg, OptionModel optionModel, java.util.List<DataConstructor> constructors, DataArgument field)
-
functionsDispatchLensGetterImpl
private static DerivedCodeSpec functionsDispatchLensGetterImpl(AlgebraicDataType adt, java.lang.String arg, DataArgument field)
-
lensGetterLambda
private static java.lang.String lensGetterLambda(java.lang.String arg, AlgebraicDataType adt, DataArgument field)
-
asParameterName
private static java.lang.String asParameterName(AlgebraicDataType adt)
-
isLens
private static boolean isLens(DataArgument field, java.util.List<DataConstructor> constructors)
-
-