Class AbstractPartChecker<O,​P,​C extends AbstractPartChecker<O,​P,​C>>

  • Type Parameters:
    O - The checked object type.
    P - The checked part type.
    C - The checker type.
    All Implemented Interfaces:
    cdc.util.debug.Printable

    public abstract class AbstractPartChecker<O,​P,​C extends AbstractPartChecker<O,​P,​C>>
    extends AbstractChecker<O>
    Specialization of AbstractChecker used to check parts of an object.

    This checker does nothing by itself, it delegates checks to its part checkers.

    Author:
    Damien Carbonne
    • Constructor Detail

      • AbstractPartChecker

        protected AbstractPartChecker​(SnapshotManager manager,
                                      Class<O> objectClass,
                                      Class<P> partClass)
        Creates an empty part checker.
        Parameters:
        manager - The manager.
        objectClass - The object class.
        partClass - The part class.
      • AbstractPartChecker

        @SafeVarargs
        protected AbstractPartChecker​(SnapshotManager manager,
                                      Class<O> objectClass,
                                      Class<P> partClass,
                                      AbstractChecker<? super P>... partCheckers)
        Creates part checker with some part checkers.
        Parameters:
        manager - The manager.
        objectClass - The object class.
        partClass - The part class.
        partCheckers - The part checkers.
    • Method Detail

      • self

        protected abstract C self()
        Returns:
        An instance of this checker, with the right (specialized) type.
      • add

        public C add​(AbstractChecker<? super P> partChecker)
        Add a new part checker.
        Parameters:
        partChecker - A part checker.
        Returns:
        This checker.
      • getParts

        protected abstract List<LocatedObject<? extends P>> getParts​(O object)
        Method that must return the parts of an object.
        Parameters:
        object - The object.
        Returns:
        The object parts.
      • isEnabled

        public final boolean isEnabled()
        Specified by:
        isEnabled in class AbstractChecker<O>
        Returns:
        true if this checker is enabled.
      • check

        public final CheckResult check​(CheckContext context,
                                       O object,
                                       Location location)
        Description copied from class: AbstractChecker
        Method that must be specialized to check an object.

        It is this method responsibility to store detected issues into the associated manager.

        Specified by:
        check in class AbstractChecker<O>
        Parameters:
        context - The context.
        object - The object to check.
        location - The object location.
        Returns:
        The check result.
      • print

        public void print​(PrintStream out,
                          int level)