package fitnesse.slim;
import java.util.Stack;
public class SlimHelperLibrary implements StatementExecutorConsumer {
private static final String ACTOR_INSTANCE_NAME = "scriptTableActor";
private StatementExecutorInterface statementExecutor;
private Stack<Object> fixtureStack = new Stack<>();
public Object getFixture() {
return statementExecutor.getInstance(ACTOR_INSTANCE_NAME);
}
@Override
public void setStatementExecutor(StatementExecutorInterface statementExecutor) {
this.statementExecutor = statementExecutor;
}
public StatementExecutorInterface getStatementExecutor() {
return statementExecutor;
}
public void pushFixture() {
fixtureStack.push(getFixture());
}
public void popFixture() {
Object actor = fixtureStack.pop();
statementExecutor.setInstance(ACTOR_INSTANCE_NAME, actor);
}
// The following functions are used to manipulate Symbols from the Slim Tables
public Object cloneSymbol(Object master){
return master;
}
}