Revision: 17816
http://sourceforge.net/p/gate/code/17816
Author: johann_p
Date: 2014-04-11 14:28:28 +0000 (Fri, 11 Apr 2014)
Log Message:
-----------
Add binding "controller", make binding "scriptParams"
always be a FeatureMap and never null, allow
document to be null so the PR can be used in a
non-corpus controller.
Modified Paths:
--------------
gate/trunk/plugins/Groovy/src/gate/groovy/ScriptPR.java
Modified: gate/trunk/plugins/Groovy/src/gate/groovy/ScriptPR.java
===================================================================
--- gate/trunk/plugins/Groovy/src/gate/groovy/ScriptPR.java 2014-04-11
13:55:26 UTC (rev 17815)
+++ gate/trunk/plugins/Groovy/src/gate/groovy/ScriptPR.java 2014-04-11
14:28:28 UTC (rev 17816)
@@ -18,8 +18,10 @@
import gate.CorpusController;
import gate.FeatureMap;
import gate.Gate;
+import gate.Factory;
import gate.ProcessingResource;
import gate.Resource;
+import gate.Document;
import gate.creole.AbstractLanguageAnalyser;
import gate.creole.ControllerAwarePR;
import gate.creole.ExecutionException;
@@ -169,7 +171,9 @@
public void controllerExecutionStarted(Controller c)
throws ExecutionException {
// ensure scriptParams are available to the callback
+ if(scriptParams == null) { scriptParams = Factory.newFeatureMap(); }
groovyScript.getBinding().setVariable("scriptParams", scriptParams);
+ groovyScript.getBinding().setVariable("controller",c);
callControllerAwareMethod("beforeCorpus", c);
}
@@ -222,28 +226,32 @@
*/
public void execute() throws ExecutionException {
- if(document == null) { throw new ExecutionException(
- "There is no loaded document"); }
-
AnnotationSet outputAS = null;
- if(outputASName == null || outputASName.trim().length() == 0)
- outputAS = document.getAnnotations();
- else outputAS = document.getAnnotations(outputASName);
-
AnnotationSet inputAS = null;
- if(inputASName == null || inputASName.trim().length() == 0)
- inputAS = document.getAnnotations();
- else inputAS = document.getAnnotations(inputASName);
-
- // Status
- fireStatusChanged("Groovy script PR running on " +
document.getSourceUrl());
+ if(document != null) {
+ if(outputASName == null || outputASName.trim().length() == 0)
+ outputAS = document.getAnnotations();
+ else
+ outputAS = document.getAnnotations(outputASName);
+ if(inputASName == null || inputASName.trim().length() == 0)
+ inputAS = document.getAnnotations();
+ else
+ inputAS = document.getAnnotations(inputASName);
+ fireStatusChanged("Groovy script PR running on " +
document.getSourceUrl());
+ } else {
+ fireStatusChanged("Groovy script PR running");
+ }
fireProgressChanged(0);
// Create the variable bindings
Binding binding = groovyScript.getBinding();
binding.setVariable("doc", document);
binding.setVariable("corpus", corpus);
- binding.setVariable("content", document.getContent().toString());
+ if(document != null) {
+ binding.setVariable("content", document.getContent().toString());
+ } else {
+ binding.setVariable("content", null);
+ }
binding.setVariable("inputAS", inputAS);
binding.setVariable("outputAS", outputAS);
@@ -378,5 +386,13 @@
public String getGroovySrc() {
return groovySrc;
}
+
+ @Override
+ @Optional
+ @RunTime
+ @CreoleParameter(comment = "The document to process")
+ public void setDocument(Document doc) {
+ document = doc;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs