--- /dev/null
+package org.simantics.document.linking.report.evaluator;\r
+\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.variable.Variable;\r
+import org.simantics.document.linking.report.DocumentLine;\r
+\r
+\r
+/**\r
+ * Base interface for user configurable content.\r
+ * \r
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
+ *\r
+ */\r
+public interface EvaluatorItem {\r
+ \r
+ /**\r
+ * Returns rootNode of the evaluation tree, or null.\r
+ * @return\r
+ */\r
+ public EvaluatorRoot getRoot();\r
+ \r
+ /**\r
+ * Return parent node, or null.\r
+ * @return\r
+ */\r
+ public EvaluatorNode getParent();\r
+ \r
+ /**\r
+ * Sets parent node. This method is for internal use only. \r
+ * @param parent\r
+ */\r
+ void setParent(EvaluatorNode parent);\r
+ \r
+ /**\r
+ * Returns result of evaluation as a single String. Lines are separated with line.separator system property. All styling hints are omitted.\r
+ * @param graph\r
+ * @param variable\r
+ * @param context\r
+ * @return\r
+ * @throws DatabaseException\r
+ */\r
+ public String getValue(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException;\r
+ \r
+ /**\r
+ * Returns result of evaluation as collection of lines with styling hints.\r
+ * @param graph\r
+ * @param variable\r
+ * @param context\r
+ * @return\r
+ * @throws DatabaseException\r
+ */\r
+ public List<DocumentLine> getLines(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException;\r
+ \r
+ /**\r
+ * Copies the evaluation node and its children.\r
+ * @return\r
+ */\r
+ public EvaluatorItem copy();\r
+ \r
+ \r
+ \r
+ public ImageDescriptor getImage();\r
+ \r
+ \r
+ \r
+}\r