[ONOS-5916] Add a mapping instruction interface with impl classes
Change-Id: I21399cd9853fe4604641af5ad57cd61f02cf354c
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingValue.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingValue.java
index 5c68eef..a41d749 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingValue.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingValue.java
@@ -15,8 +15,53 @@
*/
package org.onosproject.mapping;
+import org.onosproject.mapping.address.MappingAddress;
+import org.onosproject.mapping.instructions.MappingInstruction;
+
+import java.util.List;
+
/**
* Abstraction of value of mapping information.
*/
public interface MappingValue {
+
+ /**
+ * Obtains a mapping address.
+ *
+ * @return a mapping address
+ */
+ MappingAddress address();
+
+ /**
+ * Obtains a collection of mapping instructions.
+ *
+ * @return a collection of mapping instructions
+ */
+ List<MappingInstruction> instructions();
+
+ interface Builder {
+
+ /**
+ * Specifies the mapping address.
+ *
+ * @param address mapping address
+ * @return a mapping value builder
+ */
+ Builder withAddress(MappingAddress address);
+
+ /**
+ * Specifies a collection of mapping instructions.
+ *
+ * @param instructions a collection of mapping instructions
+ * @return a mapping value builder
+ */
+ Builder withInstructions(List<MappingInstruction> instructions);
+
+ /**
+ * Builds an immutable mapping value.
+ *
+ * @return a mapping value
+ */
+ MappingValue build();
+ }
}