001package de.monochromata.anaphors.ast.reference.strategy.concept;
002
003import de.monochromata.anaphors.ast.spi.AnaphorsSpi;
004
005/**
006 * Referentialization based on case-sensitive exact type recurrence.
007 *
008 * @param <N>  The node type in the AST
009 * @param <E>  The expression type
010 * @param <TB> The type binding type
011 * @param <S>  The scope type (optional)
012 * @param <I>  The type used to represent identifiers
013 * @param <QI> The type used to represent qualified identifiers
014 * @param <EV> The type of the event contained in the condition that is
015 *             evaluated to check when the perspectivations shall be applied.
016 * @param <PP> The type used for positions that carry perspectivations
017 */
018public class CaseSensitiveTypeRecurrence<N, E, TB, S, I, QI, EV, PP>
019        extends TypeRecurrence<N, E, TB, S, I, QI, EV, PP> {
020
021    /**
022     * Used in contract testing.
023     */
024    @SuppressWarnings("unused")
025    protected CaseSensitiveTypeRecurrence() {
026    }
027
028    public CaseSensitiveTypeRecurrence(final AnaphorsSpi<N, E, TB, S, I, QI, EV, PP> anaphorsSpi) {
029        super(anaphorsSpi);
030    }
031
032    /**
033     * Returns true;
034     */
035    @Override
036    protected boolean isCaseSensitive() {
037        return true;
038    }
039
040    @Override
041    public String getKind() {
042        return super.getKind() + "CS";
043    }
044
045}