Class Constraint

java.lang.Object
de.monticore.types3.generics.constraints.Constraint
All Implemented Interfaces:
Comparable<Constraint>
Direct Known Subclasses:
BoundWrapperConstraint, ExpressionCompatibilityConstraint, SubTypingConstraint, TypeCompatibilityConstraint, TypeEqualityConstraint

public abstract class Constraint extends Object implements Comparable<Constraint>
A Constraint is a statement that needs to hold, to find an instantiation for a generic. Constraints lead to Bounds, by means of ConstraintReduction.
  • Constructor Details

    • Constraint

      public Constraint()
  • Method Details

    • isBoundWrapperConstraint

      public boolean isBoundWrapperConstraint()
    • asBoundWrapperConstraint

      public BoundWrapperConstraint asBoundWrapperConstraint()
    • isExpressionCompatibilityConstraint

      public boolean isExpressionCompatibilityConstraint()
    • asExpressionCompatibilityConstraint

      public ExpressionCompatibilityConstraint asExpressionCompatibilityConstraint()
    • isSubTypingConstraint

      public boolean isSubTypingConstraint()
    • asSubTypingConstraint

      public SubTypingConstraint asSubTypingConstraint()
    • isTypeCompatibilityConstraint

      public boolean isTypeCompatibilityConstraint()
    • asTypeCompatibilityConstraint

      public TypeCompatibilityConstraint asTypeCompatibilityConstraint()
    • isTypeEqualityConstraint

      public boolean isTypeEqualityConstraint()
    • asTypeEqualityConstraint

      public TypeEqualityConstraint asTypeEqualityConstraint()
    • deepEquals

      public abstract boolean deepEquals(Constraint other)
    • compareTo

      public int compareTo(Constraint o)
      Specified by:
      compareTo in interface Comparable<Constraint>
    • print

      public abstract String print()
      returns a human-readable String, e.g., for the log
    • getIncludedTypes

      public abstract List<SymTypeExpression> getIncludedTypes()
      Helper function;
      Returns:
      the types included in the constraints (most have two).