Package cdc.issues.checks
Class AbstractPartChecker<O,P,C extends AbstractPartChecker<O,P,C>>
- java.lang.Object
-
- cdc.issues.checks.AbstractChecker<O>
-
- cdc.issues.checks.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 ofAbstractCheckerused to check parts of an object.This checker does nothing by itself, it delegates checks to its part checkers.
- Author:
- Damien Carbonne
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractPartChecker(SnapshotManager manager, Class<O> objectClass, Class<P> partClass)Creates an empty part checker.protectedAbstractPartChecker(SnapshotManager manager, Class<O> objectClass, Class<P> partClass, AbstractChecker<? super P>... partCheckers)Creates part checker with some part checkers.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Cadd(AbstractChecker<? super P> partChecker)Add a new part checker.CheckResultcheck(CheckContext context, O object, Location location)Method that must be specialized to check an object.List<AbstractChecker<? super P>>getPartCheckers()protected abstract List<LocatedObject<? extends P>>getParts(O object)Method that must return the parts of an object.booleanisEnabled()voidprint(PrintStream out, int level)protected abstract Cself()StringtoString()-
Methods inherited from class cdc.issues.checks.AbstractChecker
accepts, addStat, check, checkAndStat, checkAndStat, getManager, getObjectClass
-
-
-
-
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
-
getPartCheckers
public final List<AbstractChecker<? super P>> getPartCheckers()
-
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:
isEnabledin classAbstractChecker<O>- Returns:
trueif this checker is enabled.
-
check
public final CheckResult check(CheckContext context, O object, Location location)
Description copied from class:AbstractCheckerMethod that must be specialized to check an object.It is this method responsibility to store detected issues into the associated manager.
- Specified by:
checkin classAbstractChecker<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)
-
-