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
9 package org.opendaylight.lispflowmapping.lisp.type;
11 import com.google.common.base.Optional;
12 import java.util.Date;
13 import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier;
14 import org.opendaylight.lispflowmapping.lisp.util.MappingRecordUtil;
15 import org.opendaylight.lispflowmapping.lisp.util.Stringifier;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord;
20 * Wrapper class for MappingRecord with timestamp added.
22 * @author Lorand Jakab
25 public class MappingData {
26 private MappingRecord record = null;
27 private Date timestamp = null;
28 private XtrId xtrId = null;
29 private boolean mergeEnabled = false;
31 public MappingData(MappingRecord record, Long timestamp) {
32 this(record, new Date(timestamp));
35 public MappingData(MappingRecord record, Date timestamp) {
37 setTimestamp(timestamp);
40 public MappingData(MappingRecord record) {
44 public synchronized MappingRecord getRecord() {
48 public synchronized void setRecord(MappingRecord record) {
52 public synchronized Date getTimestamp() {
56 public synchronized void setTimestamp(Date timestamp) {
57 this.timestamp = timestamp;
60 public synchronized XtrId getXtrId() {
64 public synchronized void setXtrId(XtrId xtrId) {
68 public synchronized boolean isMergeEnabled() {
72 public synchronized void setMergeEnabled(boolean mergeEnabled) {
73 this.mergeEnabled = mergeEnabled;
76 public Optional<Boolean> isNegative() {
78 return Optional.of(MappingRecordUtil.isNegativeMapping(record));
80 return Optional.absent();
84 public Optional<Boolean> isPositive() {
86 return Optional.of(MappingRecordUtil.isPositiveMapping(record));
88 return Optional.absent();
93 public String toString() {
94 StringBuilder sb = new StringBuilder("MappingData [");
97 sb.append(mergeEnabled);
100 sb.append(", xTR-ID=");
104 if (timestamp != null) {
105 sb.append(", timestamp=");
106 sb.append(timestamp);
109 if (record != null) {
110 sb.append(", record=");
114 return sb.append(']').toString();
117 public String getString() {
118 StringBuilder sb = new StringBuilder();
120 sb.append("Merge: ");
121 sb.append(mergeEnabled ? "on" : "off");
124 sb.append(", xTR-ID: ");
125 sb.append(LispAddressStringifier.getString(xtrId));
128 if (timestamp != null) {
129 sb.append(", timestamp: ");
130 sb.append(timestamp.toString());
133 if (record != null) {
135 sb.append(Stringifier.getString(record));
139 return sb.append(']').toString();