package fitnesse.revisioncontrol; import static fitnesse.revisioncontrol.RevisionControlOperation.*; public abstract class NullState implements State { protected String state; public static final NullState VERSIONED = new Versioned("Versioned"); public static final NullState UNKNOWN = new Unknown("Unknown"); protected NullState(String state) { this.state = state; } public boolean isCheckedOut() { return true; } public boolean isDeleted() { return false; } } class Versioned extends NullState { protected Versioned(String state) { super(state); } public RevisionControlOperation[] operations() { return new RevisionControlOperation[]{CHECKOUT, UPDATE, STATUS}; } public boolean isUnderRevisionControl() { return true; } public boolean isCheckedIn() { return true; } } class Unknown extends NullState { protected Unknown(String state) { super(state); } public RevisionControlOperation[] operations() { return new RevisionControlOperation[]{ADD}; } public boolean isUnderRevisionControl() { return false; } public boolean isCheckedIn() { return false; } }