*/
package org.opendaylight.controller.config.persist.storage.file.xml.model;
+import java.util.HashSet;
+import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import javax.xml.bind.annotation.XmlAnyElement;
public static final String SNAPSHOT_ROOT_ELEMENT_NAME = "snapshot";
- private String configSnapshot;
+ private String configXml;
private SortedSet<String> capabilities = new TreeSet<>();
+ private Set<String> features = new HashSet<>();
ConfigSnapshot(String configXml, SortedSet<String> capabilities) {
- this.configSnapshot = configXml;
+ this.configXml = configXml;
this.capabilities = capabilities;
}
- public ConfigSnapshot() {
+ ConfigSnapshot(String configXml, SortedSet<String> capabilities, Set<String> features) {
+ this.configXml = configXml;
+ this.capabilities = capabilities;
+ this.features = features;
+ }
+
+ ConfigSnapshot() {
}
public static ConfigSnapshot fromConfigSnapshot(ConfigSnapshotHolder cfg) {
return new ConfigSnapshot(cfg.getConfigSnapshot(), cfg.getCapabilities());
}
+ public static ConfigSnapshot fromConfigSnapshot(ConfigSnapshotHolder cfg, Set<String> features) {
+ return new ConfigSnapshot(cfg.getConfigSnapshot(), cfg.getCapabilities(), features);
+ }
@XmlAnyElement(SnapshotHandler.class)
public String getConfigSnapshot() {
- return configSnapshot;
+ return configXml;
}
public void setConfigSnapshot(String configSnapshot) {
- this.configSnapshot = configSnapshot;
+ this.configXml = configSnapshot;
}
@XmlElement(name = "capability")
this.capabilities = capabilities;
}
+ @XmlElement(name = "feature")
+ @XmlElementWrapper(name = "features")
+ @XmlJavaTypeAdapter(value=StringTrimAdapter.class)
+ public Set<String> getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(final Set<String> features) {
+ this.features = features;
+ }
+
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("ConfigSnapshot{");
- sb.append("configSnapshot='").append(configSnapshot).append('\'');
+ sb.append("configSnapshot='").append(configXml).append('\'');
sb.append(", capabilities=").append(capabilities);
+ sb.append(", features=").append(features);
sb.append('}');
return sb.toString();
}
-
}