package splar.core.fm;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;
class FeatureModelState {
private String stateID;
private FeatureModel featureModel;
private List<FeatureTreeNode> lastPropagatedNodes = null;
public FeatureModelState(String stateID, FeatureModel featureModel) {
this.stateID = stateID;
this.featureModel = featureModel;
}
public String getStateID() {
return stateID;
}
public void save() {
lastPropagatedNodes = new Vector<FeatureTreeNode>();
lastPropagatedNodes.addAll(featureModel.lastPropagatedNodes);
for( FeatureTreeNode featureNode : featureModel.getNodes() ) {
featureNode.saveState(stateID);
}
}
public void restore() {
for( FeatureTreeNode featureNode : featureModel.getNodes() ) {
featureNode.restoreState(stateID, false);
}
featureModel.lastPropagatedNodes.clear();
featureModel.lastPropagatedNodes.addAll(this.lastPropagatedNodes);
}
public void discard() {
for( FeatureTreeNode featureNode : featureModel.getNodes() ) {
featureNode.discardState(stateID);
}
}
}