Author: pkluegl
Date: Mon Aug 12 14:25:24 2013
New Revision: 1513146

URL: http://svn.apache.org/r1513146
Log:
UIMA-3184
- added parameter for EXEC action, extended grammars and verbalizer
- implemented functionality with a ugly hotfix, needs a better solution

Added:
    
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/output/
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/output/
Modified:
    
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
    
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
    
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
 Mon Aug 12 14:25:24 2013
@@ -1577,8 +1577,8 @@ actionConfigure returns [AbstractRutaAct
 
 actionExec returns [AbstractRutaAction action = null]
     :
-    EXEC LPAREN ns = dottedIdentifier (COMMA tl = typeListExpression)? RPAREN
-    {action = ActionFactory.createExecAction(ns, tl, $blockDeclaration::env);}
+    EXEC LPAREN ((stringExpression)=> view = stringExpression COMMA)? ns = 
dottedIdentifier (COMMA tl = typeListExpression)? RPAREN
+    {action = ActionFactory.createExecAction(ns, tl, view, 
$blockDeclaration::env);}
     ;    
     
 actionAssign returns [AbstractRutaAction action = null]

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
 Mon Aug 12 14:25:24 2013
@@ -191,8 +191,8 @@ public class ActionFactory {
     return new TrieAction(list, map, ignoreCase, ignoreLength, edit, distance, 
ignoreChar);
   }
 
-  public static AbstractRutaAction createExecAction(String ns, 
TypeListExpression tl, RutaBlock env) {
-    return new ExecAction(ns, tl);
+  public static AbstractRutaAction createExecAction(String ns, 
TypeListExpression tl, StringExpression view, RutaBlock env) {
+    return new ExecAction(ns, tl, view);
   }
 
   public static AbstractRutaAction createMarkTableAction(TypeExpression 
structure,

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
 Mon Aug 12 14:25:24 2013
@@ -27,34 +27,43 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
+import org.apache.uima.UIMAFramework;
 import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaModule;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.ScriptApply;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
+import org.apache.uima.ruta.expression.string.StringExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
+import org.apache.uima.util.XMLInputSource;
 
 public class ExecAction extends CallAction {
 
   private TypeListExpression typeList;
 
+  private StringExpression view;
+
   public ExecAction(String namespace) {
     super(namespace);
   }
 
-  public ExecAction(String ns, TypeListExpression tl) {
+  public ExecAction(String ns, TypeListExpression tl, StringExpression view) {
     this(ns);
     this.typeList = tl;
+    this.view = view;
   }
 
   @Override
@@ -74,9 +83,27 @@ public class ExecAction extends CallActi
           RuleElement element, RutaStream stream) throws 
ResourceInitializationException,
           AnalysisEngineProcessException {
     CAS cas = stream.getCas();
+    if (view != null) {
+      String viewName = view.getStringValue(element.getParent(), match, 
element, stream);
+      if (!viewName.equals(CAS.NAME_DEFAULT_SOFA)) {
+        cas = cas.getView(viewName);
+        AnalysisEngineMetaData metaData = 
targetEngine.getAnalysisEngineMetaData();
+        try {
+          String sourceUrlString = metaData.getSourceUrlString();
+          if(sourceUrlString != null) {
+            AnalysisEngineDescription aed = (AnalysisEngineDescription) 
UIMAFramework.getXMLParser().parseResourceSpecifier(new 
XMLInputSource(sourceUrlString));
+            AnalysisEngine createEngine = AnalysisEngineFactory.createEngine(
+                    aed, viewName);
+            targetEngine = createEngine;
+          }
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
+      }
+    }
     targetEngine.process(cas);
 
-    if (typeList != null) {
+    if (typeList != null && view == null) {
       List<Type> list = typeList.getList(element.getParent(), stream);
       for (Type type : list) {
         Map<RutaBasic, Collection<AnnotationFS>> map = new HashMap<RutaBasic, 
Collection<AnnotationFS>>();
@@ -107,4 +134,12 @@ public class ExecAction extends CallActi
     return typeList;
   }
 
+  public StringExpression getView() {
+    return view;
+  }
+
+  public void setView(StringExpression view) {
+    this.view = view;
+  }
+
 }

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
 Mon Aug 12 14:25:24 2013
@@ -86,7 +86,7 @@ public class HtmlConverterPSpan implemen
 
   @Override
   public String toString() {
-    String shortTxt = this.txt.length() > 10 ? this.txt.substring(0, 10) + 
"..." : this.txt;
+    String shortTxt = this.txt.length() > 100 ? this.txt.substring(0, 100) + 
"..." : this.txt;
     return String.format("[%d-%d : %s]", begin, end, shortTxt);
   }
 }
\ No newline at end of file

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
 Mon Aug 12 14:25:24 2013
@@ -175,7 +175,8 @@ public class ActionVerbalizer {
       ExecAction a = (ExecAction) action;
       TypeListExpression typeList = a.getTypeList();
       String types = typeList == null ? "" : ", " + 
verbalizer.verbalize(typeList);
-      return name + a.getNamespace() + types + ")";
+      String view = a.getView() == null ? "" : 
verbalizer.verbalize(a.getView()) + ", ";
+      return name + view + a.getNamespace() + types + ")";
     } else if (action instanceof CallAction) {
       CallAction a = (CallAction) action;
       return name + a.getNamespace() + ")";

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
 Mon Aug 12 14:25:24 2013
@@ -171,9 +171,9 @@ public class ActionVerbalizerTest {
     assertEquals("DYNAMICANCHORING(true, 4, numVar)", s);
 
     // EXEC
-    a = new ExecAction(var, typeListExpr);
+    a = new ExecAction(var, typeListExpr, stringExpr);
     s = v.verbalize(a);
-    assertEquals("EXEC(anyVar, {Type1, typeVar})", s);
+    assertEquals("EXEC(\"string\", anyVar, {Type1, typeVar})", s);
 
     // FILL
     a = new FillAction(typeExpr1, stringExprMap);

Modified: 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
 Mon Aug 12 14:25:24 2013
@@ -1686,10 +1686,12 @@ String string = "";
     :
     name = EXEC lp = LPAREN 
      {   action = ActionFactory.createCallAction(name, 
StatementFactory.createEmtpyComponentReference(lp));}
+     (view = stringExpression COMMA)?
+     {   if(view != null) {action = ActionFactory.createCallAction(name, ns, 
null, view);}}
     ns = dottedComponentReference 
-     {   if(ns != null) {action = ActionFactory.createCallAction(name, ns, 
null);}}
+     {   if(ns != null) {action = ActionFactory.createCallAction(name, ns, 
null, view);}}
      (COMMA tl = typeListExpression)?
-      {   if(ns != null) {action = ActionFactory.createCallAction(name, ns, 
tl);}}
+     {   if(ns != null) {action = ActionFactory.createCallAction(name, ns, tl, 
view);}}
     RPAREN
     ;
 

Modified: 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
 Mon Aug 12 14:25:24 2013
@@ -92,8 +92,8 @@ public class ActionFactory extends Abstr
     return createAction(callToken, ref);
   }
 
-  public static RutaAction createCallAction(Token callToken, 
ComponentReference ref, Expression list) {
-    return createAction(callToken, ref, list);
+  public static RutaAction createCallAction(Token callToken, 
ComponentReference ref, Expression list, Expression view) {
+    return createAction(callToken, ref, list, view);
   }
 
   public static RutaAction createStructureAction(Token type, Expression 
structure,


Reply via email to