001package de.monochromata.anaphors.ast; 002 003import de.monochromata.anaphors.ast.relatedexp.RelatedExpression; 004import de.monochromata.anaphors.ast.relatedexp.strategy.RelatedExpressionStrategy; 005 006/** 007 * Represents a related expression at the AST level. Because instances of this 008 * type contain AST nodes, they should be short-lived and must not be persisted. 009 * 010 * @param <N> The node type in the AST 011 * @param <E> The expression type 012 * @param <T> The type type 013 * @param <B> The binding type 014 * @param <TB> The type binding type 015 * @param <S> The scope type (optional) 016 * @param <I> The type used to represent identifiers 017 * @param <QI> The type used to represent qualified identifiers 018 * @param <R> The sub-type of related expression to use 019 */ 020public interface RelatedExpressionPart<N, E, T, B, TB extends B, S, I, QI, R extends RelatedExpression<N, T, B, TB, S, QI, R>> { 021 022 /** 023 * Get the related expression of the anaphora relation. 024 * 025 * @return The related expression. 026 */ 027 public R getRelatedExpression(); 028 029 /** 030 * Get the related expression strategy that was used to find the related 031 * expression of this anaphora relation. 032 * 033 * @return The related expression strategy. 034 */ 035 public RelatedExpressionStrategy<N, T, B, TB, S, QI, R> getRelatedExpressionStrategy(); 036 037}