Author: pkluegl
Date: Thu Jun 16 12:41:54 2016
New Revision: 1748711

URL: http://svn.apache.org/viewvc?rev=1748711&view=rev
Log:
UIMA-4976
- fixed foreach block parent relinking
- improved profiling label
- avoid npe

Modified:
    
uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
    
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/visitor/DebugInfoCollectorVisitor.java
    
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java
    
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java

Modified: 
uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1748711&r1=1748710&r2=1748711&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
 Thu Jun 16 12:41:54 2016
@@ -772,7 +772,7 @@ level--;
        LCURLY body = statements RCURLY
        {removeTemporaryVariables(def);}
        {block.setElements(body);
-       $blockDeclaration::env.getScript().addBlock(id.getText(),block);
+       {$blockDeclaration::env = block.getParent();}
        }       
        ;
 

Modified: 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/visitor/DebugInfoCollectorVisitor.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/visitor/DebugInfoCollectorVisitor.java?rev=1748711&r1=1748710&r2=1748711&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/visitor/DebugInfoCollectorVisitor.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/visitor/DebugInfoCollectorVisitor.java
 Thu Jun 16 12:41:54 2016
@@ -125,25 +125,17 @@ public class DebugInfoCollectorVisitor i
             if (element instanceof RutaRule && parent.getRule().equals(element)
                     && result instanceof RuleApply) {
               blockApply.setRuleApply((RuleApply) result);
-
-              // } else {
-              // blockApply.add(result);
-              // }
-
             } else if (stack.size() == 1) {
               if (callStack.size() > 1) {
                 // TODO hotfixed
                 RutaElement tme = callStack.get(callStack.size() - 2);
-                if (tme.equals(parent)
-                // || tme.equals(element)
-                ) {
+                if (tme.equals(parent)) {
                   blockApply.add(result);
                 } else {
                   // TODO too many blocks added
                 }
               } else {
                 blockApply.add(result);
-
               }
             } else {
               // TODO refactor !!! ... really!!!!

Modified: 
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java?rev=1748711&r1=1748710&r2=1748711&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java
 (original)
+++ 
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java
 Thu Jun 16 12:41:54 2016
@@ -19,6 +19,10 @@
 
 package org.apache.uima.ruta.explain.apply;
 
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+
 import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
@@ -32,6 +36,12 @@ import org.eclipse.swt.graphics.Image;
 
 public class ApplyTreeLabelProvider extends LabelProvider implements 
ILabelProvider {
 
+  private DecimalFormat dfTime = new DecimalFormat("###,###,##0.000",
+          DecimalFormatSymbols.getInstance(Locale.ENGLISH));;
+
+  private DecimalFormat dfPercentage = new DecimalFormat("##0.00",
+          DecimalFormatSymbols.getInstance(Locale.ENGLISH));;
+
   private ApplyViewPage owner;
 
   ImageDescriptor blockApply;
@@ -62,7 +72,7 @@ public class ApplyTreeLabelProvider exte
   @Override
   public String getText(Object element) {
 
-    String result = "error";
+    StringBuilder result = new StringBuilder();
     if (element instanceof IExplainTreeNode) {
       IExplainTreeNode debugNode = (IExplainTreeNode) element;
       TypeSystem ts = debugNode.getTypeSystem();
@@ -74,38 +84,46 @@ public class ApplyTreeLabelProvider exte
         int v1 = fs.getIntValue(f1);
         Feature f2 = ruleType.getFeatureByBaseName(ExplainConstants.TRIED);
         int v2 = fs.getIntValue(f2);
+        result.append("[");
+        result.append(v1);
+        result.append("/");
+        result.append(v2);
+        result.append("] ");
+
         Feature f3 = ruleType.getFeatureByBaseName(ExplainConstants.ELEMENT);
         String v3 = fs.getStringValue(f3);
         v3 = v3.replaceAll("[\\n\\r]", "");
-        if(v3.length() > 150) {
+        if (v3.length() > 150) {
           v3 = v3.substring(0, 148) + "...";
         }
+        result.append(v3);
+
         Feature f4 = ruleType.getFeatureByBaseName(ExplainConstants.TIME);
         long v4 = fs.getLongValue(f4);
-        String time = "";
-        if (v4 > 0.0) {
+        if (v4 > 0) {
           double took = v4 / 1000.0;
-          time = " [" + took + "s";
+          String s = dfTime.format(took);
+          result.append(" [");
+          result.append(s);
+          result.append("s");
+
+          double percent = 100;
           IExplainTreeNode parentNode = debugNode.getParent();
           if (parentNode != null) {
             FeatureStructure parent = parentNode.getFeatureStructure();
             if (parent != null) {
               long parentTime = parent.getLongValue(f4);
-              double percent = (took / (parentTime / 1000.0)) * 100.0;
-              percent = Math.round(percent * 100.0) / 100.0;
-              time += "|" + percent + "%]";
-            } else {
-              time += "]";
+              percent = (took / (parentTime / 1000.0)) * 100.0;
             }
-          } else {
-            time += "]";
           }
-
+          result.append("|");
+          result.append(dfPercentage.format(percent));
+          result.append("%");
+          result.append("]");
         }
-        result = "[" + v1 + "/" + v2 + "] " + v3 + time;
       }
     }
-    return result;
+    return result.toString();
 
   }
 

Modified: 
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java?rev=1748711&r1=1748710&r2=1748711&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java
 (original)
+++ 
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java
 Thu Jun 16 12:41:54 2016
@@ -222,7 +222,7 @@ public class CreatedByViewPage extends P
         while (iterator.hasNext()) {
           FeatureStructure fs = (FeatureStructure) iterator.next();
           AnnotationFS afs = (AnnotationFS) 
fs.getFeatureValue(featureAnnotation);
-          if (afs.equals(featureStructure)) {
+          if (afs != null && afs.equals(featureStructure)) {
             viewer.setInput(fs);
             return;
           }


Reply via email to