package copyto.core.models; import java.util.ArrayList; import java.util.Collection; import org.osgi.service.prefs.BackingStoreException; import org.osgi.service.prefs.Preferences; import copyto.core.TargetParam; public class TargetParamsModel extends AbstractModel { private Collection<TargetParam<?>> params = new ArrayList<TargetParam<?>>(); public Collection<TargetParam<?>> getParams() { return params; } public void setParams(Collection<TargetParam<?>> params) { firePropertyChange("params", this.params, this.params = params); } public void save(Preferences preferences) { Preferences paramsNode = preferences.node("params"); for (TargetParam<?> param : params) { Preferences paramName = paramsNode.node(param.getName()); param.save(paramName); } } public void load(Preferences preferences) { try { if (preferences.nodeExists("params")) { Preferences node = preferences.node("params"); params.clear(); for (String name : node.childrenNames()) { Preferences paramNode = node.node(name); if (paramNode.nodeExists("boolean")) { params.add(new BooleanTargetParamModel(paramNode)); } else if (paramNode.nodeExists("string")) { params.add(new StringTargetParamModel(paramNode)); } else if (paramNode.nodeExists("choice")) { params.add(new ChoiceTargetParamModel(paramNode)); } } } } catch (BackingStoreException e) { } } }