daikon.inv
Class DiscardCode

Object
  extended by DiscardCode
All Implemented Interfaces:
Serializable, Comparable<DiscardCode>

public class DiscardCode
extends Object
implements Comparable<DiscardCode>, Serializable

DiscardCode is an enumeration type. It represents reasons why an invariant is falsified or disregarded. Methods that decide whether an Invariant should be printed later (such as isObviousImplied()), side effect Invariants to contain DiscardCode instances in their discardCode field slot. The different elements of the enumeration are: obvious // is implied by other already known invariants bad_sample // is falsified by a seen example bad_confidence // has an unjustified confidence // was few_modified_samples not_enough_samples // not enough samples seen for the Invariant non_canonical_var // expression involves a non-canonical variable implied_post_condition // implied by some prestate conditions only_constant_vars // expression for invariant only contains constant variables derived_param // has a VarInfo that has derived and uninteresting param unmodified_var // invariant discarded because it says some var hasn't been modified control_check // if discarded due to the ControlledInvariantFilter exact // isExact() fails var_filtered // Doesn't contain a desirable variable filtered // filtered by some other means not in the above list There is no representation for an invariant that is *not* discarded; don't use a DiscardCode in that situation.

See Also:
Serialized Form

Field Summary
static DiscardCode bad_confidence
          used when an invariant has an unjustified confidence
static DiscardCode bad_sample
          used when an invariant is falsified by a seen example
static DiscardCode control_check
          used for invariants discarded because of the ControlledInvariantsFilter
static DiscardCode derived_param
          used when an invariant's VarInfo returns true for isDerivedParamAndUninteresting()
 int enumValue
          Each member of the enumeration is associated with a distinct int for comparability
static DiscardCode exact
          used for invariants discarded when isExact() fails
static DiscardCode filtered
          used for invariants that are filtered by some means not in the above list
static DiscardCode implied_post_condition
          used when an invariant is implied by some prestate conditions
static DiscardCode non_canonical_var
          used when an invariant contains a non-canonical variable
static DiscardCode not_enough_samples
          used when an invariant has not had enough samples
static DiscardCode obvious
          used when an invariant is implied by other known invariants
static DiscardCode only_constant_vars
          used when an invariant's expression contains only constant variables
static DiscardCode unmodified_var
          used for invariants that describe unmodified variables
static DiscardCode var_filtered
          used for invariants that don't contain desired variables
 
Method Summary
 int compareTo(DiscardCode o)
          The enumeration members in sorted order:
obvious, bad_sample, bad_confidence, [unused], not_enough_samples, non_canonical_var,
implied_post_condition, only_constant_vars, derived_param, unmodified_var, control_check, exact, var filter
static DiscardCode findCode(InvariantFilter filter)
          Returns the DiscardCode most associated with the given filter
 Object readResolve()
          To prevent deserialization causing more DiscardCodes to be instantiated
 String toString()
          Prints out a string describing the reason for discard
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

obvious

public static final DiscardCode obvious
used when an invariant is implied by other known invariants


bad_sample

public static final DiscardCode bad_sample
used when an invariant is falsified by a seen example


bad_confidence

public static final DiscardCode bad_confidence
used when an invariant has an unjustified confidence


not_enough_samples

public static final DiscardCode not_enough_samples
used when an invariant has not had enough samples


non_canonical_var

public static final DiscardCode non_canonical_var
used when an invariant contains a non-canonical variable


implied_post_condition

public static final DiscardCode implied_post_condition
used when an invariant is implied by some prestate conditions


only_constant_vars

public static final DiscardCode only_constant_vars
used when an invariant's expression contains only constant variables


derived_param

public static final DiscardCode derived_param
used when an invariant's VarInfo returns true for isDerivedParamAndUninteresting()


unmodified_var

public static final DiscardCode unmodified_var
used for invariants that describe unmodified variables


control_check

public static final DiscardCode control_check
used for invariants discarded because of the ControlledInvariantsFilter


exact

public static final DiscardCode exact
used for invariants discarded when isExact() fails


var_filtered

public static final DiscardCode var_filtered
used for invariants that don't contain desired variables


filtered

public static final DiscardCode filtered
used for invariants that are filtered by some means not in the above list


enumValue

public final int enumValue
Each member of the enumeration is associated with a distinct int for comparability

Method Detail

compareTo

public int compareTo(DiscardCode o)
The enumeration members in sorted order:
obvious, bad_sample, bad_confidence, [unused], not_enough_samples, non_canonical_var,
implied_post_condition, only_constant_vars, derived_param, unmodified_var, control_check, exact, var filter

Specified by:
compareTo in interface Comparable<DiscardCode>
Returns:
this.enumValue.compareTo(o.enumValue) where the enumValue are treated as Integers
Throws:
ClassCastException - iff !(o instanceof DiscardCode)

findCode

public static DiscardCode findCode(InvariantFilter filter)
Returns the DiscardCode most associated with the given filter


toString

public String toString()
Prints out a string describing the reason for discard

Overrides:
toString in class Object
Returns:
one of {"Not discarded","Obvious,"Bad sample seen","Unjustified confidence","Few modified samples","Not enough samples", "Non-canonical variable","Implied post state","Only constant variables in this expression","Derived Param","Control Check" ,"Exact","Variable Filter","Filtered"}

readResolve

public Object readResolve()
                   throws ObjectStreamException
To prevent deserialization causing more DiscardCodes to be instantiated

Returns:
one of the static DiscardCode instances
Throws:
ObjectStreamException