001package de.monochromata.anaphors.ast.reference.strategy; 002 003import de.monochromata.AbstractStrategy; 004import de.monochromata.anaphors.ast.spi.AnaphorsSpi; 005 006/** 007 * An abstract base class for strategies used to obtain referents. 008 * 009 * @param <N> The node type in the AST 010 * @param <E> The expression type 011 * @param <TB> The type binding type 012 * @param <S> The scope type (optional) 013 * @param <I> The type used to represent identifiers 014 * @param <QI> The type used to represent qualified identifiers 015 * @param <EV> The type of the event contained in the condition that is 016 * evaluated to check when the perspectivations shall be applied. 017 * @param <PP> The type used for positions that carry perspectivations 018 */ 019public abstract class AbstractReferentializationStrategy<N, E, TB, S, I, QI, EV, PP> extends AbstractStrategy 020 implements ReferentializationStrategy<E, TB, S, I, QI> { 021 022 protected final AnaphorsSpi<N, E, TB, S, I, QI, EV, PP> anaphorsSpi; 023 024 /** 025 * Used in contract testing. 026 */ 027 @SuppressWarnings("unused") 028 protected AbstractReferentializationStrategy() { 029 this(null); 030 } 031 032 public AbstractReferentializationStrategy(final AnaphorsSpi<N, E, TB, S, I, QI, EV, PP> anaphorsSpi) { 033 this.anaphorsSpi = anaphorsSpi; 034 } 035 036}