Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jif.types
Class LabelConstraint

    java.lang.Object
      jif.types.LabelConstraint

    public class LabelConstraint

extends java.lang.Object

A `LabelConstraint` represents a constraint on labels, which may either be an inequality or equality constraint. `LabelConstraint`s are generated during type checking. `LabelConstraint`s in turn produce `Equations` which are what the `Solver` will use to find a satisfying assignment for `VarLabels`. A `LabelConstraint` is not the same as a `LabelConstraint`, which by contrast is assumed to be satisfied.

Nested Class Summary
`static class` | `LabelConstraint.Kind` Kinds of constraint, either equality or inequality.

Field Summary
`static LabelConstraint.Kind` | `EQUAL` An equality kind of constraint.
`static LabelConstraint.Kind` | `LEQ` An inequality kind of constraint.

Constructor Summary
`LabelConstraint(NamedLabel lhs, LabelConstraint.Kind kind, NamedLabel rhs, LabelEnv env, polyglot.util.Position pos)`
`LabelConstraint(NamedLabel lhs, LabelConstraint.Kind kind, NamedLabel rhs, LabelEnv env, polyglot.util.Position pos, boolean report)`

Method Summary
`java.util.Map` | `definitions(VarMap bounds)` Returns a Map of Strings to List[String]s which is the definitions/bounds of the NamedLabels, and the description of any components that appear in the NamedLabels.
`java.lang.String` | `detailMsg()` A detailed message to display if this constraint is violated.
`LabelEnv` | `env()`
`java.util.Collection` | `getEquations()` Produce a `Collection` of `Equations` for this constraint.
`protected void` | `getLEQEqns(java.util.Collection eqns, Label left, Label right)` Produce equations that require `left` to be less than or equal to `right`, and add them to `eqns`.
`LabelConstraint.Kind` | `kind()`
`Label` | `lhs()`
`java.lang.String` | `msg()` A message to display if this constraint is violated.
`protected java.util.Map` | `namedDescrips()` Return a map from Strings to Strings, which are the descriptions of names in the left and right hand sides.
`protected java.util.Map` | `namedLabels()` Return a map from Strings to Labels, which are the named elements of the left and right hand sides.
`NamedLabel` | `namedLhs()`
`NamedLabel` | `namedRhs()`
`PrincipalHierarchy` | `ph()`
`polyglot.util.Position` | `position()`
`boolean` | `report()`
`Label` | `rhs()`
`java.lang.String` | `technicalMsg()` A technical message to display if this constraint is violated.
`java.lang.String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### EQUAL

    public static final LabelConstraint.Kind EQUAL

  An equality kind of constraint. That is, the constraint requires that lhs <= rhs and rhs <= lhs.

### LEQ

    public static final LabelConstraint.Kind LEQ

  An inequality kind of constraint. That is, the constraint requires that lhs <= rhs.

Constructor Detail

### LabelConstraint

    public LabelConstraint(NamedLabel lhs,
                           LabelConstraint.Kind kind,
                           NamedLabel rhs,
                           LabelEnv env,
                           polyglot.util.Position pos)

### LabelConstraint

    public LabelConstraint(NamedLabel lhs,
                           LabelConstraint.Kind kind,
                           NamedLabel rhs,
                           LabelEnv env,
                           polyglot.util.Position pos,
                           boolean report)

Method Detail

### lhs

    public Label lhs()

### kind

    public LabelConstraint.Kind kind()

### rhs

    public Label rhs()

### namedLhs

    public NamedLabel namedLhs()

### namedRhs

    public NamedLabel namedRhs()

### env

    public LabelEnv env()

### ph

    public PrincipalHierarchy ph()

### position

    public polyglot.util.Position position()

### report

    public boolean report()

### msg

    public java.lang.String msg()

  A message to display if this constraint is violated. This message should be short, and explain without using typing rules what this constraint represents. It should not refer to the names of labels (i.e., names for `NamedLabel`s.

### detailMsg

    public java.lang.String detailMsg()

  A detailed message to display if this constraint is violated. This message may consist of several sentences, and may refer to the names of the labels, if `NamedLabel`s are used.

### technicalMsg

    public java.lang.String technicalMsg()

  A technical message to display if this constraint is violated. This message can refer to typing rules to explain what the constraint represents, and to names of labels, if `NamedLabel`s are used.

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### namedLabels

    protected java.util.Map namedLabels()

  Return a map from Strings to Labels, which are the named elements of the left and right hand sides.

### namedDescrips

    protected java.util.Map namedDescrips()

  Return a map from Strings to Strings, which are the descriptions of names in the left and right hand sides.

### definitions

    public java.util.Map definitions(VarMap bounds)

  Returns a Map of Strings to List[String]s which is the definitions/bounds of the NamedLabels, and the description of any components that appear in the NamedLabels. This map is used for verbose output to the user, to help explain the meaning of this constraint.

### getEquations

    public java.util.Collection getEquations()

  Produce a `Collection` of `Equations` for this constraint.

### getLEQEqns

    protected void getLEQEqns(java.util.Collection eqns,
                              Label left,
                              Label right)

  Produce equations that require `left` to be less than or equal to `right`, and add them to `eqns`.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD