Package de.monticore.types3.util
Class TypeVisitorLifting
- java.lang.Object
-
- de.monticore.types3.util.TypeVisitorLifting
-
public class TypeVisitorLifting extends java.lang.ObjectOffers functions to lift functions that occur in the type check visitors. E.g. it can lift functions to handle Obscure, instead of having every function handle Obscure itself. Usually lifting allows the function being lifted to be used in a more general setting, e.g., from a setting without Obscure to a setting with Obscure.
-
-
Field Summary
Fields Modifier and Type Field Description protected static TypeVisitorLiftingdelegate
-
Constructor Summary
Constructors Constructor Description TypeVisitorLifting()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>_liftDefault(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)protected java.util.function.Function<SymTypeExpression,SymTypeExpression>_liftDefault(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>_liftForNonNormalized(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)protected java.util.function.Function<SymTypeExpression,SymTypeExpression>_liftForNonNormalized(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>_liftForObscure(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)protected java.util.function.Function<SymTypeExpression,SymTypeExpression>_liftForObscure(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>_liftForUnion(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)protected java.util.function.Function<SymTypeExpression,SymTypeExpression>_liftForUnion(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)protected SymTypeExpressioncreateUnionIfApplicable(java.util.Collection<? extends SymTypeExpression> unionizedTypes)protected static TypeVisitorLiftinggetDelegate()static voidinit()static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>liftDefault(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)static java.util.function.Function<SymTypeExpression,SymTypeExpression>liftDefault(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)The default lifting, applicable in most cases.static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>liftForNonNormalized(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)static java.util.function.Function<SymTypeExpression,SymTypeExpression>liftForNonNormalized(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)Lifts Functions to handle non-normalized inputs by normalizing them.static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>liftForObscure(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)static java.util.function.Function<SymTypeExpression,SymTypeExpression>liftForObscure(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)Lifts a function to handle Obscure by returning Obscure whenever it is encountered.static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression>liftForUnion(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)static java.util.function.Function<SymTypeExpression,SymTypeExpression>liftForUnion(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)Lifts a function to handle (top-level) unions.static voidreset()protected static voidsetDelegate(TypeVisitorLifting newDelegate)
-
-
-
Field Detail
-
delegate
protected static TypeVisitorLifting delegate
-
-
Method Detail
-
liftDefault
public static java.util.function.Function<SymTypeExpression,SymTypeExpression> liftDefault(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
The default lifting, applicable in most cases. It tries to transparently handle Obscure, Unions, and non-normalized types.
-
_liftDefault
protected java.util.function.Function<SymTypeExpression,SymTypeExpression> _liftDefault(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
-
liftDefault
public static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> liftDefault(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
_liftDefault
protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> _liftDefault(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
liftForObscure
public static java.util.function.Function<SymTypeExpression,SymTypeExpression> liftForObscure(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
Lifts a function to handle Obscure by returning Obscure whenever it is encountered.
-
_liftForObscure
protected java.util.function.Function<SymTypeExpression,SymTypeExpression> _liftForObscure(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
-
liftForObscure
public static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> liftForObscure(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
_liftForObscure
protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> _liftForObscure(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
liftForUnion
public static java.util.function.Function<SymTypeExpression,SymTypeExpression> liftForUnion(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
Lifts a function to handle (top-level) unions. Each type in the union is calculated on its own and the results are then stored in a union again.
-
_liftForUnion
protected java.util.function.Function<SymTypeExpression,SymTypeExpression> _liftForUnion(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
-
liftForUnion
public static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> liftForUnion(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
_liftForUnion
protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> _liftForUnion(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
liftForNonNormalized
public static java.util.function.Function<SymTypeExpression,SymTypeExpression> liftForNonNormalized(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
Lifts Functions to handle non-normalized inputs by normalizing them.
-
_liftForNonNormalized
protected java.util.function.Function<SymTypeExpression,SymTypeExpression> _liftForNonNormalized(java.util.function.Function<SymTypeExpression,SymTypeExpression> func)
-
liftForNonNormalized
public static java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> liftForNonNormalized(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
_liftForNonNormalized
protected java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> _liftForNonNormalized(java.util.function.BiFunction<SymTypeExpression,SymTypeExpression,SymTypeExpression> func)
-
createUnionIfApplicable
protected SymTypeExpression createUnionIfApplicable(java.util.Collection<? extends SymTypeExpression> unionizedTypes)
-
init
public static void init()
-
reset
public static void reset()
-
setDelegate
protected static void setDelegate(TypeVisitorLifting newDelegate)
-
getDelegate
protected static TypeVisitorLifting getDelegate()
-
-