jif.types

## Class UnsatisfiableConstraintException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - polyglot.types.SemanticException
      - - jif.types.UnsatisfiableConstraintException

- All Implemented Interfaces:
    java.io.Serializable

      public class UnsatisfiableConstraintException
      extends polyglot.types.SemanticException

  Exception indicating that a program constraint is not satisfiable.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Equation` | `failure`
    `protected FailedConstraintSnapshot` | `snapshot`
    `protected AbstractSolver` | `solver`

    - ### Fields inherited from class polyglot.types.SemanticException

      `fillInStackTrace, position`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UnsatisfiableConstraintException(AbstractSolver solver, Equation eqn, FailedConstraintSnapshot snapshot)` Construct a new UnsatisfiableConstraintException.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `appendActualConstraint(java.lang.StringBuffer sb)` append the fully instantiated failed constraint, for example "a;b;c <= b;c" If the constraint does not have a named component, sb is unmodified.
    `protected void` | `appendEquation(java.lang.StringBuffer sb)` append the failed equation, for example "a <= b;c" or "a actsfor b"
    `protected void` | `appendNamedConstraint(java.lang.StringBuffer sb)` Append the failed named constraint, for example "caller_pc <= callee_pc" If the constraint does not have a named component, sb is unmodified.
    `protected java.lang.Iterable<java.util.Map.Entry<java.lang.String,java.util.List<java.lang.String>>>` | `definitions()`
    `protected boolean` | `errorShowConstraint()`
    `protected boolean` | `errorShowDefns()`
    `protected boolean` | `errorShowDetailMsg()`
    `protected boolean` | `errorShowTechnicalMsg()`
    `java.lang.String` | `getMessage()`
    `FailedConstraintSnapshot` | `getSnapshot()` Produce an error message for the constraint c, which cannot be satisfied.
    `protected void` | `reportTraces(java.util.Collection<Variable> variables)` Report the traces for each variables in the collection `Variables`

    - ### Methods inherited from class polyglot.types.SemanticException

      `fillInStackTrace, position`

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### solver

          protected final AbstractSolver solver

    - #### failure

          protected final Equation failure

    - #### snapshot

          protected final FailedConstraintSnapshot snapshot

  - ### Constructor Detail

    - #### UnsatisfiableConstraintException

          public UnsatisfiableConstraintException(AbstractSolver solver,
                                                  Equation eqn,
                                                  FailedConstraintSnapshot snapshot)

      Construct a new UnsatisfiableConstraintException.
      Parameters:
        `solver` - The solver that was used to determine that eqn is unsatisfiable
        `eqn` - The unsatisfiable equation

  - ### Method Detail

    - #### reportTraces

          protected void reportTraces(java.util.Collection<Variable> variables)

      Report the traces for each variables in the collection `Variables`

    - #### getSnapshot

          public final FailedConstraintSnapshot getSnapshot()

      Produce an error message for the constraint c, which cannot be satisfied.

    - #### getMessage

          public final java.lang.String getMessage()

      Overrides:
        `getMessage` in class `java.lang.Throwable`

    - #### appendNamedConstraint

          protected void appendNamedConstraint(java.lang.StringBuffer sb)

      Append the failed named constraint, for example "caller_pc <= callee_pc" If the constraint does not have a named component, sb is unmodified.

    - #### appendActualConstraint

          protected void appendActualConstraint(java.lang.StringBuffer sb)

      append the fully instantiated failed constraint, for example "a;b;c <= b;c" If the constraint does not have a named component, sb is unmodified.

    - #### appendEquation

          protected void appendEquation(java.lang.StringBuffer sb)

      append the failed equation, for example "a <= b;c" or "a actsfor b"

    - #### definitions

          protected java.lang.Iterable<java.util.Map.Entry<java.lang.String,java.util.List<java.lang.String>>> definitions()

    - #### errorShowConstraint

          protected boolean errorShowConstraint()

    - #### errorShowTechnicalMsg

          protected boolean errorShowTechnicalMsg()

    - #### errorShowDetailMsg

          protected boolean errorShowDetailMsg()

    - #### errorShowDefns

          protected boolean errorShowDefns()