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

Reply via email to