Package org.derive4j.processor
Class CataDerivator
- java.lang.Object
-
- org.derive4j.processor.CataDerivator
-
-
Field Summary
Fields Modifier and Type Field Description private MapperDerivator
mapperDerivator
private DeriveUtils
utils
-
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.TypeName
cataMapperTypeName(AlgebraicDataType adt, DataConstructor dc)
private DerivedCodeSpec
cataVisitor(AlgebraicDataType adt, javax.lang.model.type.DeclaredType visitorType, java.util.List<DataConstructor> constructors)
private javax.lang.model.type.DeclaredType
delayType(AlgebraicDataType adt)
DeriveResult<DerivedCodeSpec>
derive(AlgebraicDataType adt)
private DeriveResult<DerivedCodeSpec>
functionDispatchImpl(AlgebraicDataType adt, java.util.List<DataConstructor> constructors)
private static com.squareup.javapoet.NameAllocator
nameAllocator(AlgebraicDataType adt, java.util.List<DataConstructor> constructors)
private javax.lang.model.type.DeclaredType
strictCataType(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) boolean
visitorIsObjectAlgebra(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)
-
-