-package org.simantics.document.server.request;\r
-\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.db.layer0.variable.Variables;\r
-import org.simantics.db.request.Read;\r
-import org.simantics.document.server.handler.AbstractEventHandler;\r
-import org.simantics.document.server.io.CommandContext;\r
-import org.simantics.structural.stubs.StructuralResource2;\r
-\r
-public class HandleEventRequest implements Read<AbstractEventHandler> {\r
-\r
- final String id;\r
-\r
- public HandleEventRequest(String id) {\r
- this.id = id;\r
- }\r
-\r
- @Override\r
- public AbstractEventHandler perform(ReadGraph graph) throws DatabaseException {\r
-\r
- StructuralResource2.getInstance(graph);\r
-\r
- Variable variable = Variables.getPossibleVariable(graph, id);\r
- if(variable == null) return null;\r
-\r
-// System.err.println("EVENT " + variable.getURI(graph));\r
- Object handler = variable.getValue(graph);\r
- if(handler instanceof AbstractEventHandler)\r
- return (AbstractEventHandler) handler;\r
- else\r
- throw new DatabaseException("Handler for " + id + " is not instance of AbstractEventHandler (it is instance of " + (handler != null ? handler.getClass() : null) + ")");\r
- }\r
-\r
+package org.simantics.document.server.request;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.common.request.UnaryRead;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.db.layer0.variable.Variables;
+import org.simantics.document.server.handler.AbstractEventHandler;
+import org.simantics.structural.stubs.StructuralResource2;
+
+public class HandleEventRequest extends UnaryRead<String, AbstractEventHandler> {
+
+ public HandleEventRequest(String id) {
+ super(id);
+ }
+
+ @Override
+ public AbstractEventHandler perform(ReadGraph graph) throws DatabaseException {
+
+ StructuralResource2.getInstance(graph);
+
+ Variable variable = Variables.getPossibleVariable(graph, parameter);
+ if(variable == null) return null;
+
+// System.err.println("EVENT " + variable.getURI(graph));
+ Object handler = variable.getValue(graph);
+ if(handler instanceof AbstractEventHandler)
+ return (AbstractEventHandler) handler;
+ else
+ throw new DatabaseException("Handler for " + parameter + " is not instance of AbstractEventHandler (it is instance of " + (handler != null ? handler.getClass() : null) + ")");
+ }
+
}
\ No newline at end of file