Package org.derive4j.processor.api.model
Class AlgebraicDataTypes
- java.lang.Object
-
- org.derive4j.processor.api.model.AlgebraicDataTypes
-
public final class AlgebraicDataTypes extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AlgebraicDataTypes.Adt
static class
AlgebraicDataTypes.CasesMatchers
private static class
AlgebraicDataTypes.Lazy
-
Constructor Summary
Constructors Modifier Constructor Description private
AlgebraicDataTypes()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static AlgebraicDataType
adt(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, java.util.List<DataArgument> fields)
static AlgebraicDataTypes.CasesMatchers.TotalMatcher_Adt
cases()
static DataConstruction
getDataConstruction(AlgebraicDataType algebraicDataType)
static DeriveConfig
getDeriveConfig(AlgebraicDataType algebraicDataType)
static java.util.List<DataArgument>
getFields(AlgebraicDataType algebraicDataType)
static MatchMethod
getMatchMethod(AlgebraicDataType algebraicDataType)
static TypeConstructor
getTypeConstructor(AlgebraicDataType algebraicDataType)
static AlgebraicDataType
lazy(java.util.function.Supplier<AlgebraicDataType> algebraicDataType)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
modDataConstruction(java.util.function.Function<DataConstruction,DataConstruction> dataConstructionMod)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
modDeriveConfig(java.util.function.Function<DeriveConfig,DeriveConfig> deriveConfigMod)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
modFields(java.util.function.Function<java.util.List<DataArgument>,java.util.List<DataArgument>> fieldsMod)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
modMatchMethod(java.util.function.Function<MatchMethod,MatchMethod> matchMethodMod)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
modTypeConstructor(java.util.function.Function<TypeConstructor,TypeConstructor> typeConstructorMod)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
setDataConstruction(DataConstruction newDataConstruction)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
setDeriveConfig(DeriveConfig newDeriveConfig)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
setFields(java.util.List<DataArgument> newFields)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
setMatchMethod(MatchMethod newMatchMethod)
static java.util.function.Function<AlgebraicDataType,AlgebraicDataType>
setTypeConstructor(TypeConstructor newTypeConstructor)
-
-
-
Method Detail
-
adt
public static AlgebraicDataType adt(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, java.util.List<DataArgument> fields)
-
lazy
public static AlgebraicDataType lazy(java.util.function.Supplier<AlgebraicDataType> algebraicDataType)
-
cases
public static AlgebraicDataTypes.CasesMatchers.TotalMatcher_Adt cases()
-
getDeriveConfig
public static DeriveConfig getDeriveConfig(AlgebraicDataType algebraicDataType)
-
getTypeConstructor
public static TypeConstructor getTypeConstructor(AlgebraicDataType algebraicDataType)
-
getMatchMethod
public static MatchMethod getMatchMethod(AlgebraicDataType algebraicDataType)
-
getDataConstruction
public static DataConstruction getDataConstruction(AlgebraicDataType algebraicDataType)
-
getFields
public static java.util.List<DataArgument> getFields(AlgebraicDataType algebraicDataType)
-
setDeriveConfig
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> setDeriveConfig(DeriveConfig newDeriveConfig)
-
modDeriveConfig
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> modDeriveConfig(java.util.function.Function<DeriveConfig,DeriveConfig> deriveConfigMod)
-
setTypeConstructor
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> setTypeConstructor(TypeConstructor newTypeConstructor)
-
modTypeConstructor
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> modTypeConstructor(java.util.function.Function<TypeConstructor,TypeConstructor> typeConstructorMod)
-
setMatchMethod
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> setMatchMethod(MatchMethod newMatchMethod)
-
modMatchMethod
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> modMatchMethod(java.util.function.Function<MatchMethod,MatchMethod> matchMethodMod)
-
setDataConstruction
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> setDataConstruction(DataConstruction newDataConstruction)
-
modDataConstruction
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> modDataConstruction(java.util.function.Function<DataConstruction,DataConstruction> dataConstructionMod)
-
setFields
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> setFields(java.util.List<DataArgument> newFields)
-
modFields
public static java.util.function.Function<AlgebraicDataType,AlgebraicDataType> modFields(java.util.function.Function<java.util.List<DataArgument>,java.util.List<DataArgument>> fieldsMod)
-
-