]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/HintNode.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / evaluator / HintNode.java
1 package org.simantics.document.linking.report.evaluator;\r
2 \r
3 import java.util.Collections;\r
4 import java.util.List;\r
5 import java.util.Map;\r
6 \r
7 import org.simantics.db.ReadGraph;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.layer0.variable.Variable;\r
10 import org.simantics.document.linking.report.DocumentLine;\r
11 \r
12 \r
13 public abstract class HintNode extends EvaluatorNode{\r
14         \r
15         \r
16         public abstract Object getHintValue();\r
17         public abstract Object getHintClass();\r
18         \r
19         @Override\r
20         public String getValue(ReadGraph graph, Variable variable, Map<Object, Object> context)\r
21                         throws DatabaseException {\r
22                 if (children.size() > 0)\r
23                         return children.get(0).getValue(graph, variable, context);\r
24                 return null;\r
25         }\r
26         \r
27         @Override\r
28         public List<DocumentLine> getLines(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException {\r
29                 if (children.size() > 0) {\r
30                         List<DocumentLine> list = children.get(0).getLines(graph, variable, context);\r
31                         for (DocumentLine line : list)\r
32                                 line.getHints().put(getHintClass(), getHintValue());\r
33                         return list;\r
34                 }\r
35                 return Collections.emptyList();\r
36         }\r
37 \r
38         \r
39         @Override\r
40         public List<Class<? extends EvaluatorItem>> getPossibleChildren(boolean add) {\r
41                 if (add && children.size() > 0)\r
42                         return Collections.emptyList();\r
43                 return super.getPossibleChildren(add);\r
44         }\r
45         \r
46         @Override\r
47         public boolean acceptChild(EvaluatorItem item) {\r
48                 return children.size() == 0;\r
49         }\r
50         \r
51         @Override\r
52         public boolean acceptChild(int index, EvaluatorItem item) {\r
53                 return children.size() == 0;\r
54         }\r
55         \r
56 \r
57 }\r