+ /**
+ * @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);
+ }
+