package edu.mayo.cts2.framework.model.core;
import edu.mayo.cts2.framework.model.BaseCts2ModelObject;
import edu.mayo.cts2.framework.model.core.types.EntryState;
public abstract class AbstractIsChangeableChoice extends BaseCts2ModelObject implements IsChangeable {
@Override
public ChangeableElementGroup getChangeableElementGroup() {
return getIsChangeable().getChangeableElementGroup();
}
@Override
public EntryState getEntryState() {
return getIsChangeable().getEntryState();
}
@Override
public void setChangeableElementGroup(ChangeableElementGroup group) {
getIsChangeable().setChangeableElementGroup(group);
}
@Override
public void setEntryState(EntryState entryState) {
getIsChangeable().setEntryState(entryState);
}
private IsChangeable getIsChangeable(){
Object choice = this.getChoiceValue();
try {
return (IsChangeable) choice;
} catch (ClassCastException e) {
throw new RuntimeException("Class: "+ choice.getClass().getName() + " does not implement 'IsChangeable'.");
}
}
public abstract Object getChoiceValue();
}