Bug 7947: Store MappingOrigin in MappingData
[lispflowmapping.git] / mappingservice / api / src / main / java / org / opendaylight / lispflowmapping / type / MappingData.java
similarity index 72%
rename from mappingservice/lisp-proto/src/main/java/org/opendaylight/lispflowmapping/lisp/type/MappingData.java
rename to mappingservice/api/src/main/java/org/opendaylight/lispflowmapping/type/MappingData.java
index e953177dd01683513030220f19cdb40fe6bcabc4..1ca1be91b517b18c97811c27261ae2f0ce414691 100644 (file)
@@ -6,15 +6,18 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.lispflowmapping.lisp.type;
+package org.opendaylight.lispflowmapping.type;
 
 import com.google.common.base.Optional;
+import com.google.common.collect.Sets;
 import java.util.Date;
+import java.util.Set;
 import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
 import org.opendaylight.lispflowmapping.lisp.util.MappingRecordUtil;
 import org.opendaylight.lispflowmapping.lisp.util.Stringifier;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingOrigin;
 
 /**
  * Wrapper class for MappingRecord with timestamp added.
@@ -23,24 +26,50 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.ma
  *
  */
 public class MappingData {
+    private Set<MappingOrigin> origin = Sets.newConcurrentHashSet();
     private MappingRecord record = null;
     private Date timestamp = null;
     private XtrId xtrId = null;
     private boolean mergeEnabled = false;
 
-    public MappingData(MappingRecord record, Long timestamp) {
-        this(record, new Date(timestamp));
+    public MappingData(MappingOrigin origin, MappingRecord record, Long timestamp) {
+        this(origin, record, new Date(timestamp));
     }
 
-    public MappingData(MappingRecord record, Date timestamp) {
+    public MappingData(Set<MappingOrigin> origin, MappingRecord record, Date timestamp) {
+        setOrigin(origin);
         setRecord(record);
         setTimestamp(timestamp);
     }
 
-    public MappingData(MappingRecord record) {
+    public MappingData(Set<MappingOrigin> origin, MappingRecord record) {
+        setOrigin(origin);
         setRecord(record);
     }
 
+    public MappingData(MappingOrigin origin, MappingRecord record, Date timestamp) {
+        addOrigin(origin);
+        setRecord(record);
+        setTimestamp(timestamp);
+    }
+
+    public MappingData(MappingOrigin origin, MappingRecord record) {
+        addOrigin(origin);
+        setRecord(record);
+    }
+
+    public synchronized Set<MappingOrigin> getOrigin() {
+        return origin;
+    }
+
+    public synchronized void setOrigin(Set<MappingOrigin> origin) {
+        this.origin = origin;
+    }
+
+    public synchronized void addOrigin(MappingOrigin origin) {
+        this.origin.add(origin);
+    }
+
     public synchronized MappingRecord getRecord() {
         return record;
     }
@@ -106,6 +135,11 @@ public class MappingData {
             sb.append(timestamp);
         }
 
+        if (origin != null) {
+            sb.append(", origin=");
+            sb.append(origin);
+        }
+
         if (record != null) {
             sb.append(", record=");
             sb.append(record);