Add string attribute interfaces.

- Add interface definition to be used for UC1. (ONOS-1428, ONOS-1354, ONOS-1390)
- Added toString which was missing only on SwitchImpl.

Change-Id: I5a97d5132129213d78999e4f24917e5e5dbe4496
diff --git a/src/main/java/net/onrc/onos/core/topology/StringAttributes.java b/src/main/java/net/onrc/onos/core/topology/StringAttributes.java
new file mode 100644
index 0000000..89c5b5c
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/StringAttributes.java
@@ -0,0 +1,32 @@
+package net.onrc.onos.core.topology;
+
+import java.util.Map;
+
+/**
+ * Interface for Elements with StringAttributes.
+ */
+public interface StringAttributes {
+    /**
+     * Gets the string attribute.
+     *
+     * @param attr attribute name
+     * @return attribute value or null
+     */
+    public String getStringAttribute(final String attr);
+
+    /**
+     * Gets the string attribute.
+     *
+     * @param attr attribute name
+     * @param def default value if {@code attr} did not exist
+     * @return attribute value or null
+     */
+    public String getStringAttribute(final String attr, final String def);
+
+    /**
+     * Gets all the string attributes.
+     *
+     * @return Immutable Map containing all the String attributes.
+     */
+    public Map<String, String> getAllStringAttributes();
+}