Package org.derive4j.processor
Class CataDerivator
- java.lang.Object
-
- org.derive4j.processor.CataDerivator
-
-
Field Summary
Fields Modifier and Type Field Description private MapperDerivatormapperDerivatorprivate DeriveUtilsutils
-
Constructor Summary
Constructors Constructor Description CataDerivator(DeriveUtils utils)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private com.squareup.javapoet.TypeNamecataMapperTypeName(AlgebraicDataType adt, DataConstructor dc)private DerivedCodeSpeccataVisitor(AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors)private javax.lang.model.type.DeclaredTypedelayType(AlgebraicDataType adt)DeriveResult<DerivedCodeSpec>derive(AlgebraicDataType adt)private DeriveResult<DerivedCodeSpec>functionDispatchImpl(AlgebraicDataType adt, java.util.List<DataConstructor> constructors)private static com.squareup.javapoet.NameAllocatornameAllocator(AlgebraicDataType adt, java.util.List<DataConstructor> constructors)private javax.lang.model.type.DeclaredTypestrictCataType(AlgebraicDataType adt, javax.lang.model.type.DeclaredType acceptedVisitorType)private DeriveResult<DerivedCodeSpec>visitorDispatchImpl(AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors)(package private) booleanvisitorIsObjectAlgebra(AlgebraicDataType adt)
-
-
-
Field Detail
-
utils
private final DeriveUtils utils
-
mapperDerivator
private final MapperDerivator mapperDerivator
-
-
Constructor Detail
-
CataDerivator
CataDerivator(DeriveUtils utils)
-
-
Method Detail
-
derive
public DeriveResult<DerivedCodeSpec> derive(AlgebraicDataType adt)
-
visitorIsObjectAlgebra
boolean visitorIsObjectAlgebra(AlgebraicDataType adt)
-
cataMapperTypeName
private com.squareup.javapoet.TypeName cataMapperTypeName(AlgebraicDataType adt, DataConstructor dc)
-
functionDispatchImpl
private DeriveResult<DerivedCodeSpec> functionDispatchImpl(AlgebraicDataType adt, java.util.List<DataConstructor> constructors)
-
strictCataType
private javax.lang.model.type.DeclaredType strictCataType(AlgebraicDataType adt, javax.lang.model.type.DeclaredType acceptedVisitorType)
-
delayType
private javax.lang.model.type.DeclaredType delayType(AlgebraicDataType adt)
-
cataVisitor
private DerivedCodeSpec cataVisitor(AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors)
-
visitorDispatchImpl
private DeriveResult<DerivedCodeSpec> visitorDispatchImpl(AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors)
-
nameAllocator
private static com.squareup.javapoet.NameAllocator nameAllocator(AlgebraicDataType adt, java.util.List<DataConstructor> constructors)
-
-