Add string attributes to self-containd objects.
- Add common super class to *Event classes, which handles attributes.
- Add string attributes to *Event classes (ONOS-1564)
- Populate string attributes.
Picked random attribute obtained from OF, just to initially populate attrs.
Attributes to be used for each elements should be revisited later.
- *Impl class to use/reference self-contained objects
prep-work for snapshot in mind.
- unified equals implementations
- Add unfrozen Copy constructor.
- Add freeze check to fixed attributes.
- Remove get*Impl which was not really adding value.
Change-Id: I10f9538f87d133a22237bd8ab97b8de421d3930b
diff --git a/src/main/java/net/onrc/onos/core/topology/UpdateStringAttributes.java b/src/main/java/net/onrc/onos/core/topology/UpdateStringAttributes.java
new file mode 100644
index 0000000..6443b14
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/UpdateStringAttributes.java
@@ -0,0 +1,47 @@
+package net.onrc.onos.core.topology;
+
+// TODO Need better name
+/**
+ * Update String Attributes.
+ */
+public interface UpdateStringAttributes extends StringAttributes {
+
+ /**
+ * Creates the string attribute.
+ *
+ * @param attr attribute name
+ * @param value new value to replace with
+ * @return true if success, false if the attribute already exist
+ */
+ public boolean createStringAttribute(final String attr,
+ final String value);
+
+ /**
+ * Replaces the existing string attribute.
+ *
+ * @param attr attribute name
+ * @param oldValue old value to replace
+ * @param value new value to replace with
+ * @return true if success
+ */
+ public boolean replaceStringAttribute(final String attr,
+ final String oldValue, final String value);
+
+ /**
+ * Deletes existing string attribute.
+ *
+ * @param attr attribute name
+ * @param expectedValue value expected to be deleted
+ * @return true if success, false if an attribute already exist
+ */
+ public boolean deleteStringAttribute(final String attr,
+ final String expectedValue);
+
+ /**
+ * Deletes string attribute.
+ *
+ * @param attr attribute name
+ */
+ public void deleteStringAttribute(final String attr);
+
+}