001package daikon.inv.unary; 002 003import daikon.PptSlice; 004import daikon.inv.Invariant; 005import daikon.inv.InvariantStatus; 006import org.checkerframework.checker.interning.qual.Interned; 007import typequals.prototype.qual.Prototype; 008 009/** Exists simply to provide the do-nothing resusurrect_done method and abstract add method. */ 010public abstract class UnaryInvariant extends Invariant { 011 static final long serialVersionUID = 20020122L; 012 013 protected UnaryInvariant(PptSlice ppt) { 014 super(ppt); 015 } 016 017 protected @Prototype UnaryInvariant() { 018 super(); 019 } 020 021 @Override 022 protected Invariant resurrect_done(int[] permutation) { 023 assert permutation.length == 1; 024 assert permutation[0] == 0; 025 return this; 026 } 027 028 public abstract InvariantStatus add(@Interned Object val, int mod_index, int count); 029 030 public abstract InvariantStatus check(@Interned Object val1, int mod_index, int count); 031}