-package org.simantics.document.linking.report.evaluator;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.simantics.objmap.graph.annotations.OrderedElementsAdd;\r
-import org.simantics.objmap.graph.annotations.OrderedElementsGet;\r
-import org.simantics.objmap.graph.annotations.OrderedElementsRem;\r
-\r
-public abstract class EvaluatorNode implements EvaluatorItem{\r
- \r
- EvaluatorNode parent;\r
- \r
- List<EvaluatorItem> children = new ArrayList<EvaluatorItem>();\r
- \r
- \r
- @Override\r
- public EvaluatorNode getParent() {\r
- return parent;\r
- }\r
- \r
- @Override\r
- public void setParent(EvaluatorNode parent) {\r
- this.parent = parent;\r
- }\r
- \r
- @OrderedElementsGet\r
- public List<EvaluatorItem> getChildren() {\r
- return children;\r
- }\r
- \r
- public boolean acceptChild(EvaluatorItem item) {\r
- return true;\r
- }\r
- \r
- public boolean acceptChild(int index, EvaluatorItem item) {\r
- return true;\r
- }\r
- \r
- public void addChild(EvaluatorItem item) {\r
- children.add(item);\r
- item.setParent(this);\r
- }\r
- \r
- @OrderedElementsAdd\r
- public void addChild(int index, EvaluatorItem item) {\r
- children.add(index, item);\r
- item.setParent(this);\r
- }\r
- \r
- public int indexOf(EvaluatorItem item) {\r
- return children.indexOf(item);\r
- }\r
- \r
- @OrderedElementsRem\r
- public void removeChild(EvaluatorItem item) {\r
- children.remove(item);\r
- item.setParent(null);\r
- }\r
- \r
- \r
- public List<Class<? extends EvaluatorItem>> getPossibleChildren(boolean add) {\r
- List<Class<? extends EvaluatorItem>> classes = new ArrayList<Class<? extends EvaluatorItem>>();\r
- classes.add(And.class);\r
- classes.add(Or.class);\r
- classes.add(If.class);\r
- classes.add(Constant.class);\r
- classes.add(Variable.class);\r
- classes.add(Date.class);\r
- classes.add(Path.class);\r
- EvaluatorRoot root = getRoot();\r
- if (root != null && root.isSupportStyles()) {\r
- classes.add(TextSizeHint.class);\r
- classes.add(AlignmentHint.class);\r
- }\r
- \r
- return classes;\r
- }\r
- \r
- @SuppressWarnings("unchecked")\r
- public <T extends EvaluatorItem> T createChild(Class<T> cls) {\r
- EvaluatorItem child;\r
- try {\r
- child = cls.newInstance();\r
- if (child instanceof EvaluatorNode)\r
- ((EvaluatorNode)child).parent = this;\r
- else if (child instanceof EvaluatorLeaf) {\r
- ((EvaluatorLeaf)child).parent = this;\r
- }\r
- addChild(child);\r
- return (T)child;\r
- } catch (Exception e) {\r
- \r
- } \r
- return null;\r
- }\r
- \r
- @SuppressWarnings("unchecked")\r
- public <T extends EvaluatorItem> T createChild(int index, Class<T> cls) {\r
- EvaluatorItem child;\r
- try {\r
- child = cls.newInstance();\r
- if (child instanceof EvaluatorNode)\r
- ((EvaluatorNode)child).parent = this;\r
- else if (child instanceof EvaluatorLeaf) {\r
- ((EvaluatorLeaf)child).parent = this;\r
- }\r
- addChild(child);\r
- return (T)child;\r
- } catch (Exception e) {\r
- \r
- } \r
- return null;\r
- \r
- }\r
- \r
- @Override\r
- public EvaluatorRoot getRoot() {\r
- if (parent == null)\r
- return null;\r
- return parent.getRoot();\r
- }\r
- \r
- protected void copyChildren(EvaluatorNode copy) {\r
- for (EvaluatorItem i : children) {\r
- copy.addChild(i.copy());\r
- }\r
- }\r
-\r
-}\r
+package org.simantics.document.linking.report.evaluator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.simantics.objmap.graph.annotations.OrderedElementsAdd;
+import org.simantics.objmap.graph.annotations.OrderedElementsGet;
+import org.simantics.objmap.graph.annotations.OrderedElementsRem;
+
+public abstract class EvaluatorNode implements EvaluatorItem{
+
+ EvaluatorNode parent;
+
+ List<EvaluatorItem> children = new ArrayList<EvaluatorItem>();
+
+
+ @Override
+ public EvaluatorNode getParent() {
+ return parent;
+ }
+
+ @Override
+ public void setParent(EvaluatorNode parent) {
+ this.parent = parent;
+ }
+
+ @OrderedElementsGet
+ public List<EvaluatorItem> getChildren() {
+ return children;
+ }
+
+ public boolean acceptChild(EvaluatorItem item) {
+ return true;
+ }
+
+ public boolean acceptChild(int index, EvaluatorItem item) {
+ return true;
+ }
+
+ public void addChild(EvaluatorItem item) {
+ children.add(item);
+ item.setParent(this);
+ }
+
+ @OrderedElementsAdd
+ public void addChild(int index, EvaluatorItem item) {
+ children.add(index, item);
+ item.setParent(this);
+ }
+
+ public int indexOf(EvaluatorItem item) {
+ return children.indexOf(item);
+ }
+
+ @OrderedElementsRem
+ public void removeChild(EvaluatorItem item) {
+ children.remove(item);
+ item.setParent(null);
+ }
+
+
+ public List<Class<? extends EvaluatorItem>> getPossibleChildren(boolean add) {
+ List<Class<? extends EvaluatorItem>> classes = new ArrayList<Class<? extends EvaluatorItem>>();
+ classes.add(And.class);
+ classes.add(Or.class);
+ classes.add(If.class);
+ classes.add(Constant.class);
+ classes.add(Variable.class);
+ classes.add(Date.class);
+ classes.add(Path.class);
+ EvaluatorRoot root = getRoot();
+ if (root != null && root.isSupportStyles()) {
+ classes.add(TextSizeHint.class);
+ classes.add(AlignmentHint.class);
+ }
+
+ return classes;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T extends EvaluatorItem> T createChild(Class<T> cls) {
+ EvaluatorItem child;
+ try {
+ child = cls.newInstance();
+ if (child instanceof EvaluatorNode)
+ ((EvaluatorNode)child).parent = this;
+ else if (child instanceof EvaluatorLeaf) {
+ ((EvaluatorLeaf)child).parent = this;
+ }
+ addChild(child);
+ return (T)child;
+ } catch (Exception e) {
+
+ }
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T extends EvaluatorItem> T createChild(int index, Class<T> cls) {
+ EvaluatorItem child;
+ try {
+ child = cls.newInstance();
+ if (child instanceof EvaluatorNode)
+ ((EvaluatorNode)child).parent = this;
+ else if (child instanceof EvaluatorLeaf) {
+ ((EvaluatorLeaf)child).parent = this;
+ }
+ addChild(child);
+ return (T)child;
+ } catch (Exception e) {
+
+ }
+ return null;
+
+ }
+
+ @Override
+ public EvaluatorRoot getRoot() {
+ if (parent == null)
+ return null;
+ return parent.getRoot();
+ }
+
+ protected void copyChildren(EvaluatorNode copy) {
+ for (EvaluatorItem i : children) {
+ copy.addChild(i.copy());
+ }
+ }
+
+}