1 package org.simantics.document.linking.report.evaluator;
\r
3 import java.util.Collections;
\r
4 import java.util.List;
\r
5 import java.util.Map;
\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
13 public abstract class HintNode extends EvaluatorNode{
\r
16 public abstract Object getHintValue();
\r
17 public abstract Object getHintClass();
\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
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
35 return Collections.emptyList();
\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
47 public boolean acceptChild(EvaluatorItem item) {
\r
48 return children.size() == 0;
\r
52 public boolean acceptChild(int index, EvaluatorItem item) {
\r
53 return children.size() == 0;
\r