daikon.inv.unary.string
Class PrintableString

Object
  extended by Invariant
      extended by UnaryInvariant
          extended by SingleString
              extended by PrintableString
All Implemented Interfaces:
Serializable, Cloneable

public final class PrintableString
extends SingleString

Represents a string that contains only printable ascii characters (values 32 through 126 plus 9 (tab)

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class Invariant
Invariant.ClassVarnameComparator, Invariant.ClassVarnameFormulaComparator, Invariant.InvariantComparatorForPrinting, Invariant.Match
 
Field Summary
static boolean dkconfig_enabled
          Boolean.
 
Fields inherited from class Invariant
CONFIDENCE_JUSTIFIED, CONFIDENCE_NEVER, CONFIDENCE_UNJUSTIFIED, debug, debugFlow, debugGuarding, debugIsObvious, debugIsWorthPrinting, debugPrint, debugPrintEquality, dkconfig_confidence_limit, dkconfig_fuzzy_ratio, dkconfig_simplify_define_predicates, falsified, isGuardingPredicate, min_mod_non_missing_samples, ppt, PROBABILITY_JUSTIFIED, PROBABILITY_NEVER, PROBABILITY_UNJUSTIFIED
 
Constructor Summary
PrintableString(PptSlice slice)
           
 
Method Summary
 InvariantStatus add_modified(String a, int count)
          Check to see if a only contains printable ascii characters
 InvariantStatus check_modified(String a, int count)
          Check to see if a only contains printable ascii characters
protected  double computeConfidence()
          This method computes the confidence that this invariant occurred by chance.
 boolean enabled()
          returns whether or not this invariant is enabled
 String format_using(OutputFormat format)
          return description of invariant.
static PrintableString get_proto()
          Returns the prototype invariant for PrintableString
 PrintableString instantiate_dyn(PptSlice slice)
          instantiate an invariant on the specified slice
 DiscardInfo isObviousStatically(VarInfo[] vis)
          Returns whether or not this is obvious statically.
 boolean isSameFormula(Invariant o)
           
 
Methods inherited from class SingleString
add_unmodified, add, check_unmodified, check, valid_types, var
 
Methods inherited from class UnaryInvariant
resurrect_done
 
Methods inherited from class Invariant
add_sample, asInvClass, clear_falsified, clone_and_permute, clone, conf_is_ge, confidence_and, confidence_and, confidence_or, createGuardedInvariant, createGuardingPredicate, enoughSamples, falsify, find, format_too_few_samples, format_unimplemented, format, formatFuzzy, get_comparability, get_ni_suppressions, getConfidence, getGuardingList, getGuardingList, hasUninterestingConstant, instantiate_ok, instantiate, is_false, is_ni_suppressed, isActive, isAllPrestate, isExact, isExclusiveFormula, isInteresting, isObvious, isObviousDynamically_SomeInEquality, isObviousDynamically_SomeInEqualityHelper, isObviousDynamically, isObviousDynamically, isObviousStatically_AllInEquality, isObviousStatically_SomeInEquality, isObviousStatically_SomeInEqualityHelper, isObviousStatically, isReflexive, isSameInvariant, isValidEscExpression, isValidExpression, isWorthPrinting, justified, log, log, logDetail, logOn, match, merge, mergeFormulasOk, permute, prob_and, prob_and, prob_is_ge, prob_or, repCheck, repr_prob, repr, resurrect, simplify_format_double, simplify_format_long, simplify_format_string, state_match, toString, toString, transfer, usesVar, usesVar, usesVarDerived, varNames
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dkconfig_enabled

public static boolean dkconfig_enabled
Boolean. True iff PrintableString invariants should be considered.

Constructor Detail

PrintableString

public PrintableString(PptSlice slice)
Method Detail

get_proto

public static PrintableString get_proto()
Returns the prototype invariant for PrintableString


enabled

public boolean enabled()
returns whether or not this invariant is enabled

Overrides:
enabled in class Invariant

instantiate_dyn

public PrintableString instantiate_dyn(PptSlice slice)
instantiate an invariant on the specified slice

Overrides:
instantiate_dyn in class Invariant
Returns:
the new invariant

format_using

public String format_using(OutputFormat format)
return description of invariant. Only Daikon format is implemented

Specified by:
format_using in class Invariant

add_modified

public InvariantStatus add_modified(String a,
                                    int count)
Check to see if a only contains printable ascii characters

Specified by:
add_modified in class SingleString

check_modified

public InvariantStatus check_modified(String a,
                                      int count)
Check to see if a only contains printable ascii characters

Specified by:
check_modified in class SingleString

computeConfidence

protected double computeConfidence()
Description copied from class: Invariant
This method computes the confidence that this invariant occurred by chance. Users should use getConfidence() instead.

Specified by:
computeConfidence in class Invariant
See Also:
Invariant.getConfidence()

isObviousStatically

public DiscardInfo isObviousStatically(VarInfo[] vis)
Returns whether or not this is obvious statically. The only check is for static constants which are obviously printable (or not) from their values

Overrides:
isObviousStatically in class Invariant
Parameters:
vis - The VarInfos this invariant is obvious over. The position and data type of the variables is the *same* as that of this.ppt.var_infos.

isSameFormula

public boolean isSameFormula(Invariant o)
Overrides:
isSameFormula in class Invariant
Returns:
true iff the two invariants represent the same mathematical formula. Does not consider the context such as variable names, confidences, sample counts, value counts, or related quantities. As a rule of thumb, if two invariants format the same, this method returns true. Furthermore, in many cases, if an invariant does not involve computed constants (as "x>c" and "y=ax+b" do for constants a, b, and c), then this method vacuously returns true.