Class AlgebraicDataTypes
java.lang.Object
org.derive4j.processor.api.model.AlgebraicDataTypes
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classstatic classprivate static final class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic AlgebraicDataTypeadt(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, List<DataArgument> fields) cases()static DataConstructiongetDataConstruction(AlgebraicDataType algebraicDataType) static DeriveConfiggetDeriveConfig(AlgebraicDataType algebraicDataType) static List<DataArgument> getFields(AlgebraicDataType algebraicDataType) static MatchMethodgetMatchMethod(AlgebraicDataType algebraicDataType) static TypeConstructorgetTypeConstructor(AlgebraicDataType algebraicDataType) static AlgebraicDataTypelazy(Supplier<AlgebraicDataType> algebraicDataType) static Function<AlgebraicDataType, AlgebraicDataType> modDataConstruction(Function<DataConstruction, DataConstruction> dataConstructionMod) static Function<AlgebraicDataType, AlgebraicDataType> modDeriveConfig(Function<DeriveConfig, DeriveConfig> deriveConfigMod) static Function<AlgebraicDataType, AlgebraicDataType> modFields(Function<List<DataArgument>, List<DataArgument>> fieldsMod) static Function<AlgebraicDataType, AlgebraicDataType> modMatchMethod(Function<MatchMethod, MatchMethod> matchMethodMod) static Function<AlgebraicDataType, AlgebraicDataType> modTypeConstructor(Function<TypeConstructor, TypeConstructor> typeConstructorMod) static Function<AlgebraicDataType, AlgebraicDataType> setDataConstruction(DataConstruction newDataConstruction) static Function<AlgebraicDataType, AlgebraicDataType> setDeriveConfig(DeriveConfig newDeriveConfig) static Function<AlgebraicDataType, AlgebraicDataType> setFields(List<DataArgument> newFields) static Function<AlgebraicDataType, AlgebraicDataType> setMatchMethod(MatchMethod newMatchMethod) static Function<AlgebraicDataType, AlgebraicDataType> setTypeConstructor(TypeConstructor newTypeConstructor)
-
Constructor Details
-
AlgebraicDataTypes
private AlgebraicDataTypes()
-
-
Method Details
-
adt
public static AlgebraicDataType adt(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, List<DataArgument> fields) -
lazy
-
cases
-
getDeriveConfig
-
getTypeConstructor
-
getMatchMethod
-
getDataConstruction
-
getFields
-
setDeriveConfig
public static Function<AlgebraicDataType, AlgebraicDataType> setDeriveConfig(DeriveConfig newDeriveConfig) -
modDeriveConfig
public static Function<AlgebraicDataType, AlgebraicDataType> modDeriveConfig(Function<DeriveConfig, DeriveConfig> deriveConfigMod) -
setTypeConstructor
public static Function<AlgebraicDataType, AlgebraicDataType> setTypeConstructor(TypeConstructor newTypeConstructor) -
modTypeConstructor
public static Function<AlgebraicDataType, AlgebraicDataType> modTypeConstructor(Function<TypeConstructor, TypeConstructor> typeConstructorMod) -
setMatchMethod
public static Function<AlgebraicDataType, AlgebraicDataType> setMatchMethod(MatchMethod newMatchMethod) -
modMatchMethod
public static Function<AlgebraicDataType, AlgebraicDataType> modMatchMethod(Function<MatchMethod, MatchMethod> matchMethodMod) -
setDataConstruction
public static Function<AlgebraicDataType, AlgebraicDataType> setDataConstruction(DataConstruction newDataConstruction) -
modDataConstruction
public static Function<AlgebraicDataType, AlgebraicDataType> modDataConstruction(Function<DataConstruction, DataConstruction> dataConstructionMod) -
setFields
public static Function<AlgebraicDataType, AlgebraicDataType> setFields(List<DataArgument> newFields) -
modFields
public static Function<AlgebraicDataType, AlgebraicDataType> modFields(Function<List<DataArgument>, List<DataArgument>> fieldsMod)
-