2 * Copyright (c) 2016, 2017 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.lispflowmapping.lisp.type;
10 import java.util.Date;
11 import java.util.Optional;
12 import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
13 import org.opendaylight.lispflowmapping.lisp.util.MappingRecordUtil;
14 import org.opendaylight.lispflowmapping.lisp.util.Stringifier;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord;
19 * Wrapper class for MappingRecord with timestamp added.
21 * @author Lorand Jakab
24 public class MappingData {
25 private MappingRecord record = null;
26 private Date timestamp = null;
27 private XtrId xtrId = null;
28 private boolean mergeEnabled = false;
30 public MappingData(MappingRecord record, Long timestamp) {
31 this(record, new Date(timestamp));
34 public MappingData(MappingRecord record, Date timestamp) {
36 setTimestamp(timestamp);
39 public MappingData(MappingRecord record) {
43 public synchronized MappingRecord getRecord() {
47 public synchronized void setRecord(MappingRecord record) {
51 public synchronized Date getTimestamp() {
55 public synchronized void setTimestamp(Date timestamp) {
56 this.timestamp = timestamp;
59 public synchronized XtrId getXtrId() {
63 public synchronized void setXtrId(XtrId xtrId) {
67 public synchronized boolean isMergeEnabled() {
71 public synchronized void setMergeEnabled(boolean mergeEnabled) {
72 this.mergeEnabled = mergeEnabled;
75 public Optional<Boolean> isNegative() {
77 return Optional.of(MappingRecordUtil.isNegativeMapping(record));
79 return Optional.empty();
83 public Optional<Boolean> isPositive() {
85 return Optional.of(MappingRecordUtil.isPositiveMapping(record));
87 return Optional.empty();
92 public String toString() {
93 StringBuilder sb = new StringBuilder("MappingData [");
96 sb.append(mergeEnabled);
99 sb.append(", xTR-ID=");
103 if (timestamp != null) {
104 sb.append(", timestamp=");
105 sb.append(timestamp);
108 if (record != null) {
109 sb.append(", record=");
113 return sb.append(']').toString();
116 public String getString() {
117 StringBuilder sb = new StringBuilder();
119 sb.append("Merge: ");
120 sb.append(mergeEnabled ? "on" : "off");
123 sb.append(", xTR-ID: ");
124 sb.append(LispAddressStringifier.getString(xtrId));
127 if (timestamp != null) {
128 sb.append(", timestamp: ");
129 sb.append(timestamp.toString());
132 if (record != null) {
134 sb.append(Stringifier.getString(record));
138 return sb.append(']').toString();