1 package org.simantics.document.linking.report.evaluator;
3 import java.util.Collections;
7 import org.simantics.db.ReadGraph;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.db.layer0.variable.Variable;
10 import org.simantics.document.linking.report.DocumentLine;
13 public abstract class HintNode extends EvaluatorNode{
16 public abstract Object getHintValue();
17 public abstract Object getHintClass();
20 public String getValue(ReadGraph graph, Variable variable, Map<Object, Object> context)
21 throws DatabaseException {
22 if (children.size() > 0)
23 return children.get(0).getValue(graph, variable, context);
28 public List<DocumentLine> getLines(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException {
29 if (children.size() > 0) {
30 List<DocumentLine> list = children.get(0).getLines(graph, variable, context);
31 for (DocumentLine line : list)
32 line.getHints().put(getHintClass(), getHintValue());
35 return Collections.emptyList();
40 public List<Class<? extends EvaluatorItem>> getPossibleChildren(boolean add) {
41 if (add && children.size() > 0)
42 return Collections.emptyList();
43 return super.getPossibleChildren(add);
47 public boolean acceptChild(EvaluatorItem item) {
48 return children.size() == 0;
52 public boolean acceptChild(int index, EvaluatorItem item) {
53 return children.size() == 0;