diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java
index e14dd01..259f80a 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java
@@ -17,6 +17,8 @@
 
 import io.netty.buffer.ByteBuf;
 
+import java.util.List;
+
 /**
  * Default LISP map register message class.
  */
@@ -35,4 +37,87 @@
     public Builder createBuilder() {
         return null;
     }
+
+    @Override
+    public boolean isProxyMapReply() {
+        return false;
+    }
+
+    @Override
+    public boolean isWantMapNotify() {
+        return false;
+    }
+
+    @Override
+    public byte getRecordCount() {
+        return 0;
+    }
+
+    @Override
+    public long getNonce() {
+        return 0;
+    }
+
+    @Override
+    public short getKeyId() {
+        return 0;
+    }
+
+    @Override
+    public byte[] getAuthenticationData() {
+        return new byte[0];
+    }
+
+    @Override
+    public List<LispRecord> getLispRecords() {
+        return null;
+    }
+
+    public static final class DefaultRegisterBuilder implements RegisterBuilder {
+
+        @Override
+        public LispMessage build() {
+            return null;
+        }
+
+        @Override
+        public LispType getType() {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder withIsProxyMapReply(boolean isProxyMapReply) {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder withIsWantMapNotify(boolean isWantMapNotify) {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder withRecordCount(byte recordCount) {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder withNonce(long nonce) {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder withKeyId(short keyId) {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder withAuthenticationData(byte[] authenticationData) {
+            return null;
+        }
+
+        @Override
+        public RegisterBuilder addRecord(LispRecord record) {
+            return null;
+        }
+    }
 }
