001package de.monochromata.anaphors.ast.reference.strategy; 002 003import de.monochromata.Strategy; 004import de.monochromata.anaphors.ast.reference.Referent; 005 006/** 007 * A strategy used to obtain referents 008 * 009 * @param <E> 010 * The expression type 011 * @param <TB> 012 * The type binding type 013 * @param <S> 014 * The scope type (optional) 015 * @param <I> 016 * The type used to represent identifiers 017 * @param <QI> 018 * The type used to represent qualified identifiers 019 */ 020public interface ReferentializationStrategy<E, TB, S, I, QI> extends Strategy { 021 022 /** 023 * Checks whether the given definite expression can, using this 024 * referentialization strategy, refer to the given potential referent in the 025 * given scope. All information in the definite expression needs to be matched 026 * by the given potential referent for the method to return true. Matching is 027 * performed in a way that is specific to the referentialization strategy. 028 * 029 * @param idFromDefiniteExpression 030 * the ID from the definite expression that shall refer to the given 031 * potential referent 032 * @param potentialReferent 033 * the potential referent to refer to 034 * @param scope 035 * the scope in which the definite expression occurs 036 * @return {@code true} if all information provided by the definite expression 037 * matches information provided by the potential referent, where 038 * matching depends on the implementation of this method, {@code false} 039 * otherwise. 040 */ 041 public boolean canReferTo(I idFromDefiniteExpression, Referent<TB, S, I, QI> potentialReferent, S scope); 042 043}