[ONOS-4718] Implement LISP control message classes
Change-Id: I26ab3b8da383d8967c08e14b4f11f03e0663de73
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java
index 7f89dc0..94322e1 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java
@@ -20,15 +20,40 @@
/**
* Default LISP map reply message class.
*/
-public class DefaultLispMapReply implements LispMapReply {
+public final class DefaultLispMapReply implements LispMapReply {
+
+ private final long nonce;
+ private final byte recordCount;
+ private final boolean probe;
+ private final boolean etr;
+ private final boolean security;
+
+ /**
+ * A private constructor that protects object instantiation from external.
+ *
+ * @param nonce nonce
+ * @param recordCount record count number
+ * @param probe probe flag
+ * @param etr etr flag
+ * @param security security flag
+ */
+ private DefaultLispMapReply(long nonce, byte recordCount, boolean probe,
+ boolean etr, boolean security) {
+ this.nonce = nonce;
+ this.recordCount = recordCount;
+ this.probe = probe;
+ this.etr = etr;
+ this.security = security;
+ }
+
@Override
public LispType getType() {
- return null;
+ return LispType.LISP_MAP_REPLY;
}
@Override
public void writeTo(ByteBuf byteBuf) {
-
+ // TODO: serialize LispMapReply message
}
@Override
@@ -38,64 +63,75 @@
@Override
public boolean isProbe() {
- return false;
+ return this.probe;
}
@Override
public boolean isEtr() {
- return false;
+ return this.etr;
}
@Override
public boolean isSecurity() {
- return false;
+ return this.security;
}
@Override
public byte getRecordCount() {
- return 0;
+ return this.recordCount;
}
@Override
public long getNonce() {
- return 0;
+ return this.nonce;
}
public static final class DefaultReplyBuilder implements ReplyBuilder {
- @Override
- public LispMessage build() {
- return null;
- }
+ private long nonce;
+ private byte recordCount;
+ private boolean probe;
+ private boolean etr;
+ private boolean security;
@Override
public LispType getType() {
- return null;
+ return LispType.LISP_MAP_REPLY;
}
@Override
- public ReplyBuilder withIsProbe(boolean isProbe) {
- return null;
+ public ReplyBuilder withIsProbe(boolean probe) {
+ this.probe = probe;
+ return this;
}
@Override
- public ReplyBuilder withIsEtr(boolean isEtr) {
- return null;
+ public ReplyBuilder withIsEtr(boolean etr) {
+ this.etr = etr;
+ return this;
}
@Override
- public ReplyBuilder withIsSecurity(boolean isSecurity) {
- return null;
+ public ReplyBuilder withIsSecurity(boolean security) {
+ this.security = security;
+ return this;
}
@Override
public ReplyBuilder withRecordCount(byte recordCount) {
- return null;
+ this.recordCount = recordCount;
+ return this;
}
@Override
public ReplyBuilder withNonce(long nonce) {
- return null;
+ this.nonce = nonce;
+ return this;
+ }
+
+ @Override
+ public LispMessage build() {
+ return new DefaultLispMapReply(nonce, recordCount, probe, etr, security);
}
}
}