001package daikon.simplify;
002
003import org.checkerframework.checker.lock.qual.GuardSatisfied;
004import org.checkerframework.checker.lock.qual.GuardedBy;
005import org.checkerframework.dataflow.qual.SideEffectFree;
006
007public interface Cmd {
008  /**
009   * Runs the command in the given session.
010   *
011   * @param s a session in which to run this command
012   */
013  public void apply(final @GuardedBy("<self>") Session s);
014
015  /**
016   * Returns a string for debugging only.
017   *
018   * @return a string for debugging only
019   */
020  @SideEffectFree
021  @Override
022  public String toString(@GuardSatisfied Cmd this);
023}