package click.kamil.springstatemachineexporter.ast.common;

import org.eclipse.jdt.core.dom.Expression;
import java.util.List;

public interface DataFlowModel {
    /**
     * Resolves all possible Expressions that define the value of the given expression
     * at its location in the control flow.
     */
    List<Expression> getReachingDefinitions(Expression expr);

    /**
     * Resolves the single constant/literal value if all definitions converge,
     * or if a single value is expected.
     */
    String resolveValue(Expression expr, CodebaseContext context);
}
