001/*-----------------------------------------------------------------------+
002 | com.teamscale.checks
003 |                                                                       |
004   $Id$            
005 |                                                                       |
006 | Copyright (c)  2009-2015 CQSE GmbH                                 |
007 +-----------------------------------------------------------------------*/
008package eu.cqse.check.base;
009
010import eu.cqse.check.framework.core.CheckException;
011import eu.cqse.check.framework.core.ECheckParameter;
012import eu.cqse.check.framework.shallowparser.framework.ShallowEntity;
013
014/**
015 * Base class for checks that select a set of entities via xPath and create a
016 * finding for each selected entity. Subclasses must use the
017 * {@link ECheckParameter#ABSTRACT_SYNTAX_TREE} parameter.
018 */
019public abstract class EntityFindingCheckBase extends EntityCheckBase {
020
021        /** {@inheritDoc} */
022        @Override
023        protected void processEntity(ShallowEntity entity) throws CheckException {
024                createFinding(getFindingMessage(entity), entity);
025        }
026
027        /** Creates a finding message for the given entity. */
028        protected abstract String getFindingMessage(ShallowEntity entity);
029}