# Package jif.types

Contains classes related to the Jif type system and Jif types, including Jif labels and principals.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ActsForConstraint<Actor extends ActsForParam,Granter extends ActsForParam> | The acts-for constraint.
  ActsForParam | A class parameter type that can be used in an actsfor constraint.
  Assertion | An `Assertion` represents a condition on labels and/or principals that is assumed to hold true.
  AuthConstraint | The authority constraint.
  AutoEndorseConstraint | The auto endorse constraint.
  CallerConstraint | The caller constraint.
  ConstArrayType | A `ConstArrayType` represents an array of base types, whose elements cannot change after initialization.
  DefaultSignature |
  ExceptionPath | The control flow path introduced by throwing a exception.
  Graph.NodeVisitor |
  JifClassType | Jif class type.
  JifConstructorInstance | Jif constructor instance.
  JifContext | The context for Jif type checking.
  JifFieldInstance | Jif field instance.
  JifLocalInstance | Jif local instance.
  JifMethodInstance | Jif method instance.
  JifParsedPolyType | Jif parsed polymorphic class type.
  JifPolyType | Jif polymorphic type.
  JifProcedureInstance | Jif procedure instance.
  JifSubst |
  JifSubstType |
  JifTypeSystem | Jif type system.
  JifVarInstance | Jif variable instance.
  LabeledType | A labeled type.
  LabelLeAssertion |
  Param | The root of the Jif class parameter types.
  ParamInstance | A parameter instance.
  Path | A control flow path.
  PrincipalInstance | A `PrincipalInstance` represents a global principal.
  Solver | A solver of Jif constraints.
  UnknownParam | A representation of any unknown class parameter.

- Class Summary
  Class | Description
  --- | ---
  AbstractSolver | A solver of Jif constraints.
  AbstractSolver.EquationQueue | A queue for equations.
  ActsForConstraint_c<Actor extends ActsForParam,Granter extends ActsForParam> |
  AuthConstraint_c | An implementation of the `AuthConstraint` interface.
  AutoEndorseConstraint_c | An implementation of the `CallerConstraint` interface.
  CallerConstraint_c | An implementation of the `CallerConstraint` interface.
  ConstArrayType_c |
  Constraint | A `Constraint` is the superclass of label constraints and principals constraints, which are generated during type checking and label checking.
  Constraint.Kind | Kinds of constraint, either equality or inequality.
  ConstraintMessage | A `LabelConstraintMessage` provides error messages for label constraints.
  Equation | Label equation derived from a label constraint.
  ExceptionPath_c | An implementation of the `ExceptionPath` interface.
  FailedConstraintSnapshot |
  FixedSignature |
  GotoPath_c | The control flow path derived from GOTO like statements.
  Graph |
  InformationFlowTrace |
  JifConstructorInstance_c | An implementation of the `JifConstructorInstance` interface.
  JifContext_c | An implementation of the `JifContext` interface.
  JifContext_c.Key |
  JifDeserializedClassInitializer |
  JifFieldInstance_c | An implementation of the `JifFieldInstance` interface.
  JifLazyClassInitializer_c | A LazyClassInitializer is responsible for initializing members of a class after it has been created.
  JifLocalInstance_c | An implementation of the `JifLocalInstance` interface.
  JifMethodInstance_c | An implementation of the `JifMethodInstance` interface.
  JifMuPClass_c | An implementation of the `JifParsedPolyType` interface.
  JifParsedPolyType_c | An implementation of the `JifParsedPolyType` interface.
  JifSubst_c |
  JifSubstClassType_c |
  JifTypeSystem_c | An implementation of the `JifTypeSystem` interface.
  LabelConstraint | A `LabelConstraint` represents a constraint on labels, which may either be an inequality or equality constraint.
  LabeledType_c | An implementation of the `LabeledType` interface.
  LabelEquation | Label equation derived from a label constraint.
  LabelFlowGraph |
  LabelLeAssertion_c |
  LabelSubstitution | The class is a simple Label visitor.
  NamedLabel | A Jif label with names for the debuging use.
  Param_c |
  ParamInstance_c | An implementation of the `ParamInstance` interface.
  ParamInstance.Kind |
  Path.FixedPath |
  PathMap | Implements the mapping from paths to labels.
  PrincipalConstraint | A `PrincipalConstraint` represents a constraint on principals, which may either be an actsfor or an equivalence constraint.
  PrincipalEquation | Principal equation derived from a principal constraint.
  PrincipalInstance_c | An implementation of the `PrincipalInstance` interface.
  SolverGLB | A solver of Jif constraints.
  TypeSubstitutor | Visits an AST, and applies a `LabelSubsitution` to all labels that occur in the AST.
  UnknownParam_c | An implementation of the `UnknownParam` interface.
  VarMap | Maps variable components to labels.
  VarSignature |

- Enum Summary
  Enum | Description
  --- | ---
  InformationFlowTrace.Direction |

- Exception Summary
  Exception | Description
  --- | ---
  SemanticDetailedException | Allow a more detailed message if requested.
  UnsatisfiableConstraintException | Exception indicating that a program constraint is not satisfiable.

## Package jif.types Description

Contains classes related to the Jif type system and Jif types, including Jif labels and principals.

All the types and labelsextend from the class `TypeObject`. The objects of these classes should be created by invoking the correponding methods of `JifTypeSystem`.

See Also:
  `TypeObject`, `Type`, `TypeSystem`, ``