Removed sonar warnings.
[controller.git] / opendaylight / config / config-persister-file-xml-adapter / src / main / java / org / opendaylight / controller / config / persist / storage / file / xml / model / ConfigSnapshot.java
index 589a644f3ddcd308f3d708c35e841be59e5cdfaa..94cd58fc090e54443ad8619517020361149a4454 100644 (file)
@@ -7,6 +7,8 @@
  */
 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;
@@ -21,29 +23,39 @@ public class ConfigSnapshot {
 
     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")
@@ -57,14 +69,25 @@ public class ConfigSnapshot {
         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();
     }
-
 }