]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network/src/org/simantics/district/network/visualisations/model/DynamicSymbolContribution.java
Move remaining profiles to visualisations for perf
[simantics/district.git] / org.simantics.district.network / src / org / simantics / district / network / visualisations / model / DynamicSymbolContribution.java
diff --git a/org.simantics.district.network/src/org/simantics/district/network/visualisations/model/DynamicSymbolContribution.java b/org.simantics.district.network/src/org/simantics/district/network/visualisations/model/DynamicSymbolContribution.java
new file mode 100644 (file)
index 0000000..cbd3ed8
--- /dev/null
@@ -0,0 +1,60 @@
+package org.simantics.district.network.visualisations.model;
+
+import java.util.List;
+import java.util.Map;
+
+import org.simantics.scl.runtime.function.Function1;
+import org.simantics.scl.runtime.function.Function2;
+import org.simantics.scl.runtime.tuple.Tuple0;
+
+public class DynamicSymbolContribution {
+
+    private List<String> children;
+    private Function2<Map<String, Integer>, Map<String, String>, String> symbolFunction;
+    private Function1<Tuple0, Map<String, String>> symbolMapFunction;
+    
+    private Map<String, String> symbolMap;
+    
+    // for graph persistence only
+    private boolean used;
+    private boolean useDefault;
+
+    public DynamicSymbolContribution(List<String> children, Function2<Map<String, Integer>, Map<String, String>, String> symbolFunction, Function1<Tuple0, Map<String, String>> symbolMapFunction) {
+        this.children = children;
+        this.symbolFunction = symbolFunction;
+        this.symbolMapFunction = symbolMapFunction;
+    }
+
+    public List<String> getChildren() {
+        return children;
+    }
+    
+    public Function2<Map<String, Integer>, Map<String, String>, String> getSymbolFunction() {
+        return symbolFunction;
+    }
+    
+    public void resolveSymbolMap() {
+        symbolMap = symbolMapFunction.apply(Tuple0.INSTANCE);
+    }
+    
+    public Map<String, String> getSymbolMap() {
+        return symbolMap;
+    }
+
+    public boolean isUsed() {
+        return used;
+    }
+    
+    public void setUsed(boolean used) {
+        this.used = used;
+    }
+    
+    public boolean isUseDefault() {
+        return useDefault;
+    }
+    
+    public void setUseDefault(boolean useDefault) {
+        this.useDefault = useDefault;
+    }
+
+}
\ No newline at end of file