001package de.monochromata.anaphors.ast.reference.strategy.concept;
002
003import de.monochromata.anaphors.ast.spi.AnaphorsSpi;
004
005/**
006 * Referentialization based on case-sensitive name recurrence, like in
007 * variables.
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 class CaseSensitiveNameRecurrence<N, E, TB, S, I, QI, EV, PP>
020        extends NameRecurrence<N, E, TB, S, I, QI, EV, PP> {
021
022    /**
023     * Used in contract testing.
024     */
025    @SuppressWarnings("unused")
026    protected CaseSensitiveNameRecurrence() {
027    }
028
029    public CaseSensitiveNameRecurrence(final AnaphorsSpi<N, E, TB, S, I, QI, EV, PP> anaphorsSpi) {
030        super(anaphorsSpi);
031    }
032
033    /**
034     * Returns true
035     */
036    @Override
037    protected boolean isCaseSensitive() {
038        return true;
039    }
040
041    @Override
042    public String getKind() {
043        return super.getKind() + "CS";
044    }
045
046}