Class NISuppressee


  • public class NISuppressee
    extends Object
    Defines a suppressee for non-instantiating suppression. A suppressee consists only of the class at this point since ternary invariants only require the class to define them fully (permutations are built into the class name). When binary invariants are suppressed additional information will need to be included.
    • Constructor Detail

      • NISuppressee

        public NISuppressee​(Class<? extends Invariant> cls,
                            boolean swap)
        Define a binary suppressee on the specified class with the specified variable order.
    • Method Detail

      • instantiate

        public @Nullable Invariant instantiate​(VarInfo[] vis,
                                               PptTopLevel ppt)
        Instantiates the suppressee invariant on the slice specified by vis in the specified ppt. If the slice is not currently there, it will be created.
      • find_all

        @RequiresNonNull("#2.equality_view")
        public List<NIS.SupInv> find_all​(VarInfo[] vis,
                                         PptTopLevel ppt,
                                         @Nullable Invariant @Nullable [] cinvs)
        Finds the suppressee invariants on all of the slices specified by vis in the specified ppt. Multiple slices can be specified by vis if a slot in vis is null. The slot will be filled by all leaders that can correctly fill the slot and SupInv created for each.
        Parameters:
        cinvs - an array of the actual invariants that were found for each slot. It is used for for debug printing only.
        Returns:
        a list describing all of the invariants
      • get_swap

        public boolean get_swap()
        Returns the swap variable setting for the suppressee. Returns false if the suppressee is not a binary invariant, is symmetric, or permutes by changing classes.
      • swap

        public NISuppressee swap()
        Returns a new suppressee that is the same as this one except that its variables are swapped.