]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Merge "Generic <String, Object> property map for tree node structure"
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Mon, 27 Aug 2018 14:10:57 +0000 (14:10 +0000)
committerGerrit Code Review <gerrit2@simantics>
Mon, 27 Aug 2018 14:10:57 +0000 (14:10 +0000)
bundles/org.simantics.modeling/src/org/simantics/modeling/requests/Node.java

index 4a43e0840a907cecc3bfd0bfbc847113775e8161..721c08e549e9fd5bd22137e961c56ad8b94c954a 100644 (file)
@@ -15,7 +15,9 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.simantics.db.Resource;
 import org.simantics.db.common.ResourceArray;
@@ -44,6 +46,8 @@ public class Node implements Comparable<Node> {
     private PageDesc         pageDesc;
     private String           rvi;
 
+    private Map<String, Object> properties;
+
     /**
      * @param parent
      * @param name
@@ -121,6 +125,25 @@ public class Node implements Comparable<Node> {
         return pageDesc;
     }
 
+    /**
+     * @param key
+     * @param value
+     * @return this node for chained initialization
+     */
+    public Node setProperty(String key, Object value) {
+        if (properties == null)
+            properties = new HashMap<>();
+        properties.put(key, value);
+        return this;
+    }
+
+    @SuppressWarnings("unchecked")
+    public <T> T getProperty(String key) {
+        if (properties == null)
+            return null;
+        return (T) properties.get(key);
+    }
+
     @Override
     public int compareTo(Node o) {
         int ret = name.compareTo(o.name);