You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2012/01/09 11:22:04 UTC

svn commit: r1229085 [1/5] - in /uima/sandbox/trunk/TextMarker: uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/ uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ uimaj-ep-textmarker-engine/src/main/jav...

Author: pkluegl
Date: Mon Jan  9 10:22:03 2012
New Revision: 1229085

URL: http://svn.apache.org/viewvc?rev=1229085&view=rev
Log:
UIMA-2319
added prototypical language elements for float support.

Added:
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java
      - copied, changed from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java
      - copied, changed from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java
Removed:
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedIntegerExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceIntegerExpression.java
Modified:
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.tokens
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.g
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.tokens
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/verbalize/ExpressionVerbalizer.java
    uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java Mon Jan  9 10:22:03 2012
@@ -91,6 +91,7 @@ public class TextMarkerEnvironment {
     availableTypes.put("INT", Integer.class);
     availableTypes.put("STRING", String.class);
     availableTypes.put("DOUBLE", Double.class);
+    availableTypes.put("FLOAT", Double.class);
     availableTypes.put("BOOLEAN", Boolean.class);
     availableTypes.put("TYPE", Type.class);
     availableTypes.put("CONDITION", AbstractTextMarkerCondition.class);
@@ -100,12 +101,14 @@ public class TextMarkerEnvironment {
     availableTypes.put("BOOLEANLIST", List.class);
     availableTypes.put("INTLIST", List.class);
     availableTypes.put("DOUBLELIST", List.class);
+    availableTypes.put("FLOATLIST", List.class);
     availableTypes.put("STRINGLIST", List.class);
     availableTypes.put("TYPELIST", List.class);
     availableListTypes = new HashMap<String, Class<?>>();
     availableListTypes.put("BOOLEANLIST", Boolean.class);
     availableListTypes.put("INTLIST", Integer.class);
     availableListTypes.put("DOUBLELIST", Double.class);
+    availableListTypes.put("FLOATLIST", Float.class);
     availableListTypes.put("STRINGLIST", String.class);
     availableListTypes.put("TYPELIST", Type.class);
     resourcePaths = getResourcePaths();
@@ -242,10 +245,12 @@ public class TextMarkerEnvironment {
   private Object getInitialValue(Class<?> type) {
     if (Integer.class.equals(type)) {
       return 0;
+    } else if (Double.class.equals(type)) {
+      return 0d;
+    } else if (Float.class.equals(type)) {
+      return 0f;
     } else if (String.class.equals(type)) {
       return "";
-    } else if (Double.class.equals(type)) {
-      return 0;
     } else if (Boolean.class.equals(type)) {
       return false;
     } else if (Type.class.equals(type)) {

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java Mon Jan  9 10:22:03 2012
@@ -42,10 +42,10 @@ import org.apache.uima.textmarker.expres
 import org.apache.uima.textmarker.expression.list.SimpleTypeListExpression;
 import org.apache.uima.textmarker.expression.list.StringListExpression;
 import org.apache.uima.textmarker.expression.list.TypeListExpression;
-import org.apache.uima.textmarker.expression.number.ComposedDoubleExpression;
+import org.apache.uima.textmarker.expression.number.ComposedNumberExpression;
 import org.apache.uima.textmarker.expression.number.NegativeNumberExpression;
 import org.apache.uima.textmarker.expression.number.NumberExpression;
-import org.apache.uima.textmarker.expression.number.ReferenceDoubleExpression;
+import org.apache.uima.textmarker.expression.number.ReferenceNumberExpression;
 import org.apache.uima.textmarker.expression.number.SimpleNumberExpression;
 import org.apache.uima.textmarker.expression.resource.LiteralWordListExpression;
 import org.apache.uima.textmarker.expression.resource.LiteralWordTableExpression;
@@ -87,7 +87,7 @@ public class ExpressionFactory {
   }
 
   public static NumberExpression createReferenceNumberExpression(Token var, Token minus) {
-    ReferenceDoubleExpression simpleNumberExpression = new ReferenceDoubleExpression(var.getText());
+    ReferenceNumberExpression simpleNumberExpression = new ReferenceNumberExpression(var.getText());
     if (minus != null) {
       return new NegativeNumberExpression(simpleNumberExpression);
     } else {
@@ -101,7 +101,7 @@ public class ExpressionFactory {
     for (Token token : opTokens) {
       ops.add(token.getText());
     }
-    return new ComposedDoubleExpression(expressions, ops);
+    return new ComposedNumberExpression(expressions, ops);
   }
 
   public static NumberExpression createComposedNumberExpression(NumberExpression expression,
@@ -110,7 +110,7 @@ public class ExpressionFactory {
     List<NumberExpression> exprList = new ArrayList<NumberExpression>();
     ops.add(opToken.getText());
     exprList.add(expression);
-    return new ComposedDoubleExpression(exprList, ops);
+    return new ComposedNumberExpression(exprList, ops);
   }
 
   public static StringExpression createSimpleStringExpression(Token token) {
@@ -200,6 +200,10 @@ public class ExpressionFactory {
     return new ReferenceNumberListExpression(var.getText());
   }
 
+  public static NumberListExpression createReferenceFloatListExpression(Token var) {
+    return new ReferenceNumberListExpression(var.getText());
+  }
+  
   public static BooleanListExpression createBooleanListExpression(List<BooleanExpression> list) {
     return new SimpleBooleanListExpression(list);
   }
@@ -216,4 +220,6 @@ public class ExpressionFactory {
     return new SimpleStringListExpression(list);
   }
 
+
+
 }

Copied: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java (from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java)
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java?p2=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java&p1=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java&r1=1181740&r2=1229085&rev=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java Mon Jan  9 10:22:03 2012
@@ -24,13 +24,13 @@ import java.util.List;
 import org.apache.uima.textmarker.TextMarkerStatement;
 
 
-public class ComposedDoubleExpression extends AbstractNumberExpression {
+public class ComposedNumberExpression extends AbstractNumberExpression {
 
   private final List<NumberExpression> expressions;
 
   private final List<String> ops;
 
-  public ComposedDoubleExpression(List<NumberExpression> expressions, List<String> ops) {
+  public ComposedNumberExpression(List<NumberExpression> expressions, List<String> ops) {
     super();
     this.expressions = expressions;
     this.ops = ops;
@@ -46,13 +46,30 @@ public class ComposedDoubleExpression ex
     for (int i = 0; i < getOperators().size(); i++) {
       double second = 0;
       if (getExpressions().size() > i + 1) {
-        second = getExpressions().get(i + 1).getIntegerValue(parent);
+        second = getExpressions().get(i + 1).getDoubleValue(parent);
       }
       result = calculate(result, second, getOperators().get(i));
     }
     return result;
   }
-
+  
+  @Override
+  public double getFloatValue(TextMarkerStatement parent) {
+    NumberExpression numberExpression = getExpressions().get(0);
+    if (numberExpression == null) {
+      return 0;
+    }
+    double result = numberExpression.getFloatValue(parent);
+    for (int i = 0; i < getOperators().size(); i++) {
+      double second = 0;
+      if (getExpressions().size() > i + 1) {
+        second = getExpressions().get(i + 1).getFloatValue(parent);
+      }
+      result = calculate(result, second, getOperators().get(i));
+    }
+    return result;
+  }
+  
   @Override
   public int getIntegerValue(TextMarkerStatement parent) {
     int result = getExpressions().get(0).getIntegerValue(parent);
@@ -79,4 +96,6 @@ public class ComposedDoubleExpression ex
     return ops;
   }
 
+ 
+
 }

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java Mon Jan  9 10:22:03 2012
@@ -36,6 +36,11 @@ public class NegativeNumberExpression ex
   }
 
   @Override
+  public double getFloatValue(TextMarkerStatement parent) {
+    return -ne.getFloatValue(parent);
+  }
+  
+  @Override
   public int getIntegerValue(TextMarkerStatement parent) {
     return -ne.getIntegerValue(parent);
   }
@@ -49,4 +54,6 @@ public class NegativeNumberExpression ex
     return ne;
   }
 
+  
+
 }

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java Mon Jan  9 10:22:03 2012
@@ -27,5 +27,7 @@ public abstract class NumberExpression e
   public abstract int getIntegerValue(TextMarkerStatement parent);
 
   public abstract double getDoubleValue(TextMarkerStatement parent);
+  
+  public abstract double getFloatValue(TextMarkerStatement parent);
 
 }

Copied: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java (from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java)
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java?p2=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java&p1=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java&r1=1181740&r2=1229085&rev=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java Mon Jan  9 10:22:03 2012
@@ -21,11 +21,11 @@ package org.apache.uima.textmarker.expre
 
 import org.apache.uima.textmarker.TextMarkerStatement;
 
-public class ReferenceDoubleExpression extends NumberExpression {
+public class ReferenceNumberExpression extends NumberExpression {
 
   private final String var;
 
-  public ReferenceDoubleExpression(String var) {
+  public ReferenceNumberExpression(String var) {
     super();
     this.var = var;
   }
@@ -41,6 +41,16 @@ public class ReferenceDoubleExpression e
   }
 
   @Override
+  public double getFloatValue(TextMarkerStatement parent) {
+    Object value = parent.getEnvironment().getVariableValue(getVar());
+    double variableValue = 0;
+    if (value instanceof Number) {
+      variableValue = ((Number) value).floatValue();
+    }
+    return variableValue;
+  }
+  
+  @Override
   public int getIntegerValue(TextMarkerStatement parent) {
     Object value = parent.getEnvironment().getVariableValue(getVar());
     int variableValue = 0;

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java Mon Jan  9 10:22:03 2012
@@ -36,6 +36,11 @@ public class SimpleNumberExpression exte
   }
 
   @Override
+  public double getFloatValue(TextMarkerStatement parent) {
+    return number.floatValue();
+  }
+  
+  @Override
   public int getIntegerValue(TextMarkerStatement parent) {
     return number.intValue();
   }

Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g Mon Jan  9 10:22:03 2012
@@ -322,6 +322,7 @@ AutomataBlockString 	:	'RULES';
 TypeString 	:	'TYPE';
 IntString	:	'INT';
 DoubleString	:	'DOUBLE';
+FloatString	:	'FLOAT';
 StringString	:	'STRING';
 BooleanString	:	'BOOLEAN';
 TypeSystemString:	'TYPESYSTEM';	
@@ -333,6 +334,8 @@ BOOLEANLIST 
 INTLIST :	'INTLIST';
 DOUBLELIST
 	:	 'DOUBLELIST';
+FLOATLIST
+	:	 'FLOATLIST';
 STRINGLIST
 	:	'STRINGLIST';	
 TYPELIST:	'TYPELIST';