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}