001package de.monochromata.anaphors.cog.transform; 002 003import de.monochromata.anaphors.ast.ASTBasedAnaphora; 004import de.monochromata.anaphors.cog.memory.Chunk; 005 006/** 007 * An interface for the results of preparatory transformations. 008 * <p> 009 * Implementations of 010 * {@link PreparatoryTransformation#canPerform(de.monochromata.anaphors.cog.memory.Chunk, Object, Object)} 011 * may return implementations that add information that can be re-used in 012 * {@link PreparatoryTransformation#perform(CheckResult, ASTBasedAnaphora)} , e.g. when 013 * the check includes an expensive search operation whose results are supplied 014 * to {@link PreparatoryTransformation#perform(CheckResult, ASTBasedAnaphora)} . 015 * 016 * @param <N> 017 * The node type in the AST 018 * @param <E> 019 * The expression type 020 * @param <S> 021 * The scope type (optional) 022 * 023 * @see PreparatoryTransformation#canPerform(de.monochromata.anaphors.cog.memory.Chunk, 024 * Object, Object) 025 * @see PreparatoryTransformation#perform(CheckResult, ASTBasedAnaphora) 026 */ 027public interface CheckResult<N, E, S> { 028 029 public Chunk<N> getChunk(); 030 031 public E getDefiniteExpression(); 032 033 public S getScope(); 034 035 public boolean canPerformTransformation(); 036 037}