You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by jo...@apache.org on 2011/08/01 17:25:50 UTC

svn commit: r1152824 [7/21] - in /uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker: ./ action/ batch/ condition/ engine/ kernel/ kernel/constraint/ kernel/expression/ kernel/expression/bool/...

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,28 @@
+package org.apache.uima.tm.textmarker.kernel.expression.bool;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class SimpleBooleanExpression extends BooleanExpression {
+
+  private final boolean value;
+
+  public SimpleBooleanExpression(boolean value) {
+    super();
+    this.value = value;
+  }
+
+  @Override
+  public boolean getBooleanValue(TextMarkerStatement parent) {
+    return getPrimitiveValue();
+  }
+
+  public boolean getPrimitiveValue() {
+    return value;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return getBooleanValue(parent) ? "true" : "false";
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanFunction.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanFunction.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanFunction.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,39 @@
+package org.apache.uima.tm.textmarker.kernel.expression.bool;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class SimpleBooleanFunction extends BooleanExpression {
+
+  private String op;
+
+  private BooleanExpression e1;
+
+  private BooleanExpression e2;
+
+  public SimpleBooleanFunction(String text, BooleanExpression e1, BooleanExpression e2) {
+    super();
+    this.op = text;
+    this.e1 = e1;
+    this.e2 = e2;
+  }
+
+  @Override
+  public boolean getBooleanValue(TextMarkerStatement parent) {
+    boolean b1 = e1.getBooleanValue(parent);
+    boolean b2 = e2.getBooleanValue(parent);
+    if ("XOR".equals(op)) {
+      return (b1 || b2) && !(b1 && b2);
+    } else if ("==".equals(op)) {
+      return b1 == b2;
+    } else if ("!=".equals(op)) {
+      return b1 != b2;
+    }
+    return false;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return e1.getStringValue(parent) + " " + op + " " + e2.getStringValue(parent);
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanFunction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/bool/SimpleBooleanFunction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/BooleanListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/BooleanListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/BooleanListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/BooleanListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,5 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+public abstract class BooleanListExpression extends ListExpression<Boolean> {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/BooleanListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/BooleanListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,18 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.string.StringExpression;
+
+
+public abstract class ListExpression<T> extends StringExpression {
+
+  public abstract List<T> getList(TextMarkerStatement parent);
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return getList(parent).toString();
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/NumberListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/NumberListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/NumberListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/NumberListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,5 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+public abstract class NumberListExpression extends ListExpression<Number> {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/NumberListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/NumberListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceBooleanListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceBooleanListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceBooleanListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceBooleanListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,38 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.bool.BooleanExpression;
+
+
+public class ReferenceBooleanListExpression extends BooleanListExpression {
+
+  private String var;
+
+  public ReferenceBooleanListExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @SuppressWarnings("unchecked")
+  @Override
+  public List<Boolean> getList(TextMarkerStatement parent) {
+    List<Object> list = parent.getEnvironment().getVariableValue(var, List.class);
+    List<Boolean> result = new ArrayList<Boolean>();
+    for (Object each : list) {
+      if (each instanceof BooleanExpression) {
+        result.add(((BooleanExpression) each).getBooleanValue(parent));
+      } else if (each instanceof Boolean) {
+        result.add((Boolean) each);
+      }
+    }
+    return result;
+  }
+
+  public String getVar() {
+    return var;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceBooleanListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceBooleanListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceNumberListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceNumberListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceNumberListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceNumberListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,37 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.number.NumberExpression;
+
+
+public class ReferenceNumberListExpression extends NumberListExpression {
+
+  private String var;
+
+  public ReferenceNumberListExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @SuppressWarnings("unchecked")
+  @Override
+  public List<Number> getList(TextMarkerStatement parent) {
+    List<Object> list = parent.getEnvironment().getVariableValue(var, List.class);
+    List<Number> result = new ArrayList<Number>();
+    for (Object each : list) {
+      if (each instanceof NumberExpression) {
+        result.add(((NumberExpression) each).getDoubleValue(parent));
+      } else if (each instanceof Number) {
+        result.add((Number) each);
+      }
+    }
+    return result;
+  }
+
+  public String getVar() {
+    return var;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceNumberListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceNumberListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceStringListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceStringListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceStringListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceStringListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,37 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.string.StringExpression;
+
+
+public class ReferenceStringListExpression extends StringListExpression {
+
+  private String var;
+
+  public ReferenceStringListExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @SuppressWarnings("unchecked")
+  @Override
+  public List<String> getList(TextMarkerStatement parent) {
+    List<Object> list = parent.getEnvironment().getVariableValue(var, List.class);
+    List<String> result = new ArrayList<String>();
+    for (Object each : list) {
+      if (each instanceof StringExpression) {
+        result.add(((StringExpression) each).getStringValue(parent));
+      } else if (each instanceof String) {
+        result.add((String) each);
+      }
+    }
+    return result;
+  }
+
+  public String getVar() {
+    return var;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceStringListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceStringListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceTypeListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceTypeListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceTypeListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceTypeListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,38 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.cas.Type;
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.type.TypeExpression;
+
+
+public class ReferenceTypeListExpression extends TypeListExpression {
+
+  private String var;
+
+  public ReferenceTypeListExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @SuppressWarnings("unchecked")
+  @Override
+  public List<Type> getList(TextMarkerStatement parent) {
+    List<Object> list = parent.getEnvironment().getVariableValue(var, List.class);
+    List<Type> result = new ArrayList<Type>();
+    for (Object each : list) {
+      if (each instanceof TypeExpression) {
+        result.add(((TypeExpression) each).getType(parent));
+      } else if (each instanceof Type) {
+        result.add((Type) each);
+      }
+    }
+    return result;
+  }
+
+  public String getVar() {
+    return var;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceTypeListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/ReferenceTypeListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleBooleanListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleBooleanListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleBooleanListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleBooleanListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,32 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.bool.BooleanExpression;
+
+
+public class SimpleBooleanListExpression extends BooleanListExpression {
+
+  private List<BooleanExpression> list;
+
+  public SimpleBooleanListExpression(List<BooleanExpression> list) {
+    super();
+    this.list = list;
+  }
+
+  @Override
+  public List<Boolean> getList(TextMarkerStatement parent) {
+    List<Boolean> result = new ArrayList<Boolean>();
+    for (BooleanExpression each : list) {
+      result.add(each.getBooleanValue(parent));
+    }
+    return result;
+  }
+
+  public List<BooleanExpression> getList() {
+    return list;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleBooleanListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleBooleanListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleNumberListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleNumberListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleNumberListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleNumberListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,31 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.number.NumberExpression;
+
+
+public class SimpleNumberListExpression extends NumberListExpression {
+
+  private List<NumberExpression> list;
+
+  public SimpleNumberListExpression(List<NumberExpression> list) {
+    super();
+    this.list = list;
+  }
+
+  @Override
+  public List<Number> getList(TextMarkerStatement parent) {
+    List<Number> result = new ArrayList<Number>();
+    for (NumberExpression each : list) {
+      result.add(each.getDoubleValue(parent));
+    }
+    return result;
+  }
+
+  public List<NumberExpression> getList() {
+    return list;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleNumberListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleNumberListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleStringListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleStringListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleStringListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleStringListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,31 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.string.StringExpression;
+
+
+public class SimpleStringListExpression extends StringListExpression {
+
+  private List<StringExpression> list;
+
+  public SimpleStringListExpression(List<StringExpression> list) {
+    super();
+    this.list = list;
+  }
+
+  @Override
+  public List<String> getList(TextMarkerStatement parent) {
+    List<String> result = new ArrayList<String>();
+    for (StringExpression each : list) {
+      result.add(each.getStringValue(parent));
+    }
+    return result;
+  }
+
+  public List<StringExpression> getList() {
+    return list;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleStringListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleStringListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleTypeListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleTypeListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleTypeListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleTypeListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,32 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.cas.Type;
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.type.TypeExpression;
+
+
+public class SimpleTypeListExpression extends TypeListExpression {
+
+  private List<TypeExpression> list;
+
+  public SimpleTypeListExpression(List<TypeExpression> list) {
+    super();
+    this.list = list;
+  }
+
+  @Override
+  public List<Type> getList(TextMarkerStatement parent) {
+    List<Type> result = new ArrayList<Type>();
+    for (TypeExpression each : list) {
+      result.add(each.getType(parent));
+    }
+    return result;
+  }
+
+  public List<TypeExpression> getList() {
+    return list;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleTypeListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/SimpleTypeListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/StringListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/StringListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/StringListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/StringListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,5 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+public abstract class StringListExpression extends ListExpression<String> {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/StringListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/StringListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/TypeListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/TypeListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/TypeListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/TypeListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,7 @@
+package org.apache.uima.tm.textmarker.kernel.expression.list;
+
+import org.apache.uima.cas.Type;
+
+public abstract class TypeListExpression extends ListExpression<Type> {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/TypeListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/list/TypeListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/AbstractNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/AbstractNumberExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/AbstractNumberExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/AbstractNumberExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,56 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+
+public abstract class AbstractNumberExpression extends NumberExpression {
+
+  protected double calculate(double t1, double t2, String op) {
+    if ("+".equals(op)) {
+      return t1 + t2;
+    } else if ("-".equals(op)) {
+      return t1 - t2;
+    } else if ("*".equals(op)) {
+      return t1 * t2;
+    } else if ("/".equals(op)) {
+      return t1 / t2;
+    } else if ("%".equals(op)) {
+      return t1 % t2;
+    } else if ("EXP".equals(op)) {
+      return Math.exp(t1);
+    } else if ("LOG".equals(op)) {
+      return Math.log(t1);
+    } else if ("SIN".equals(op)) {
+      return Math.sin(t1);
+    } else if ("COS".equals(op)) {
+      return Math.cos(t1);
+    } else if ("TAN".equals(op)) {
+      return Math.tan(t1);
+    }
+    return 0;
+  }
+
+  protected int calculate(int t1, int t2, String op) {
+    if ("+".equals(op)) {
+      return t1 + t2;
+    } else if ("-".equals(op)) {
+      return t1 - t2;
+    } else if ("*".equals(op)) {
+      return t1 * t2;
+    } else if ("/".equals(op)) {
+      return t1 / t2;
+    } else if ("%".equals(op)) {
+      return t1 % t2;
+    } else if ("EXP".equals(op)) {
+      return (int) Math.exp(t1);
+    } else if ("LOG".equals(op)) {
+      return (int) Math.log(t1);
+    } else if ("SIN".equals(op)) {
+      return (int) Math.sin(t1);
+    } else if ("COS".equals(op)) {
+      return (int) Math.cos(t1);
+    } else if ("TAN".equals(op)) {
+      return (int) Math.tan(t1);
+    }
+    return 0;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/AbstractNumberExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/AbstractNumberExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedDoubleExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedDoubleExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedDoubleExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedDoubleExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,63 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+
+public class ComposedDoubleExpression extends AbstractNumberExpression {
+
+  private final List<NumberExpression> expressions;
+
+  private final List<String> ops;
+
+  public ComposedDoubleExpression(List<NumberExpression> expressions, List<String> ops) {
+    super();
+    this.expressions = expressions;
+    this.ops = ops;
+  }
+
+  @Override
+  public double getDoubleValue(TextMarkerStatement parent) {
+    NumberExpression numberExpression = getExpressions().get(0);
+    if (numberExpression == null) {
+      return 0;
+    }
+    double result = numberExpression.getDoubleValue(parent);
+    for (int i = 0; i < getOperators().size(); i++) {
+      double second = 0;
+      if (getExpressions().size() > i + 1) {
+        second = getExpressions().get(i + 1).getIntegerValue(parent);
+      }
+      result = calculate(result, second, getOperators().get(i));
+    }
+    return result;
+  }
+
+  @Override
+  public int getIntegerValue(TextMarkerStatement parent) {
+    int result = getExpressions().get(0).getIntegerValue(parent);
+    for (int i = 0; i < getOperators().size(); i++) {
+      int second = 0;
+      if (getExpressions().size() > i + 1) {
+        second = getExpressions().get(i + 1).getIntegerValue(parent);
+      }
+      result = calculate(result, second, getOperators().get(i));
+    }
+    return result;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return "" + getDoubleValue(parent);
+  }
+
+  public List<NumberExpression> getExpressions() {
+    return expressions;
+  }
+
+  public List<String> getOperators() {
+    return ops;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedDoubleExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedDoubleExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedIntegerExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedIntegerExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedIntegerExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedIntegerExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,59 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+
+public class ComposedIntegerExpression extends AbstractNumberExpression {
+
+  private final List<NumberExpression> expressions;
+
+  private final List<String> ops;
+
+  public ComposedIntegerExpression(List<NumberExpression> expressions, List<String> ops) {
+    super();
+    this.expressions = expressions;
+    this.ops = ops;
+  }
+
+  @Override
+  public double getDoubleValue(TextMarkerStatement parent) {
+    double result = getExpressions().get(0).getDoubleValue(parent);
+    for (int i = 0; i < getOperators().size(); i++) {
+      result = calculate(result, getExpressions().get(i + 1).getDoubleValue(parent), getOperators()
+              .get(i));
+    }
+    return result;
+  }
+
+  @Override
+  public int getIntegerValue(TextMarkerStatement parent) {
+    int result = getExpressions().get(0).getIntegerValue(parent);
+    for (int i = 0; i < getOperators().size(); i++) {
+      result = calculate(result, getExpressions().get(i + 1).getIntegerValue(parent),
+              getOperators().get(i));
+    }
+    return result;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    try {
+      String string = "" + getDoubleValue(parent);
+      return string;
+    } catch (Exception e) {
+    }
+    return "" + getIntegerValue(parent);
+
+  }
+
+  public List<NumberExpression> getExpressions() {
+    return expressions;
+  }
+
+  public List<String> getOperators() {
+    return ops;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedIntegerExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ComposedIntegerExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NegativeNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NegativeNumberExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NegativeNumberExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NegativeNumberExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,33 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class NegativeNumberExpression extends NumberExpression {
+
+  private final NumberExpression ne;
+
+  public NegativeNumberExpression(NumberExpression simpleNumberExpression) {
+    super();
+    this.ne = simpleNumberExpression;
+  }
+
+  @Override
+  public double getDoubleValue(TextMarkerStatement parent) {
+    return -ne.getDoubleValue(parent);
+  }
+
+  @Override
+  public int getIntegerValue(TextMarkerStatement parent) {
+    return -ne.getIntegerValue(parent);
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return "-" + ne.getStringValue(parent);
+  }
+
+  public NumberExpression getExpression() {
+    return ne;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NegativeNumberExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NegativeNumberExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,12 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.string.StringExpression;
+
+public abstract class NumberExpression extends StringExpression {
+
+  public abstract int getIntegerValue(TextMarkerStatement parent);
+
+  public abstract double getDoubleValue(TextMarkerStatement parent);
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberFunctionExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberFunctionExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberFunctionExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberFunctionExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,6 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+
+public abstract class NumberFunctionExpression extends NumberExpression {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberFunctionExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/NumberFunctionExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceDoubleExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceDoubleExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceDoubleExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceDoubleExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,47 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class ReferenceDoubleExpression extends NumberExpression {
+
+  private final String var;
+
+  public ReferenceDoubleExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @Override
+  public double getDoubleValue(TextMarkerStatement parent) {
+    Object value = parent.getEnvironment().getVariableValue(getVar());
+    double variableValue = 0;
+    if (value instanceof Number) {
+      variableValue = ((Number) value).doubleValue();
+    }
+    return variableValue;
+  }
+
+  @Override
+  public int getIntegerValue(TextMarkerStatement parent) {
+    Object value = parent.getEnvironment().getVariableValue(getVar());
+    int variableValue = 0;
+    if (value instanceof Number) {
+      variableValue = ((Number) value).intValue();
+    }
+    return variableValue;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    Class<?> variableType = parent.getEnvironment().getVariableType(getVar());
+    if (variableType.equals(Integer.class)) {
+      return "" + getIntegerValue(parent);
+    } else {
+      return "" + getDoubleValue(parent);
+    }
+  }
+
+  public String getVar() {
+    return var;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceDoubleExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceDoubleExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceIntegerExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceIntegerExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceIntegerExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceIntegerExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,39 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class ReferenceIntegerExpression extends NumberExpression {
+  private final String var;
+
+  public ReferenceIntegerExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @Override
+  public double getDoubleValue(TextMarkerStatement parent) {
+    Double variableValue = parent.getEnvironment().getVariableValue(getVar(), Double.class);
+    return variableValue;
+  }
+
+  @Override
+  public int getIntegerValue(TextMarkerStatement parent) {
+    Integer variableValue = parent.getEnvironment().getVariableValue(getVar(), Integer.class);
+    return variableValue;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    Class<?> variableType = parent.getEnvironment().getVariableType(getVar());
+    if (variableType.equals(Integer.class)) {
+      return "" + getIntegerValue(parent);
+    } else {
+      return "" + getDoubleValue(parent);
+    }
+  }
+
+  public String getVar() {
+    return var;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceIntegerExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/ReferenceIntegerExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/SimpleNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/SimpleNumberExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/SimpleNumberExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/SimpleNumberExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,38 @@
+package org.apache.uima.tm.textmarker.kernel.expression.number;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class SimpleNumberExpression extends NumberExpression {
+
+  private final Number number;
+
+  public SimpleNumberExpression(Number number) {
+    super();
+    this.number = number;
+  }
+
+  @Override
+  public double getDoubleValue(TextMarkerStatement parent) {
+    return number.doubleValue();
+  }
+
+  @Override
+  public int getIntegerValue(TextMarkerStatement parent) {
+    return number.intValue();
+  }
+
+  public Number getNumber() {
+    return number;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    boolean floating = number.intValue() != number.doubleValue();
+    if (floating) {
+      return "" + getDoubleValue(parent);
+    } else {
+      return "" + getIntegerValue(parent);
+    }
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/SimpleNumberExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/number/SimpleNumberExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,33 @@
+package org.apache.uima.tm.textmarker.kernel.expression.resource;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.resource.TextMarkerWordList;
+
+public class LiteralWordListExpression extends WordListExpression {
+
+  private final String text;
+
+  public LiteralWordListExpression(String text) {
+    super();
+    if (text.startsWith("\'") && text.endsWith("\'")) {
+      text = text.substring(1, text.length() - 1);
+    }
+    this.text = stripEscapes(text); // hotfix for the escaping problem
+  }
+
+  public static String stripEscapes(String str) {
+    String result = str.replaceAll("\\\\\\\\", "\\\\");
+    return result.replaceAll("\\\\\\\"", "\\\"");
+  }
+
+  @Override
+  public TextMarkerWordList getList(TextMarkerStatement element) {
+    TextMarkerWordList list = element.getEnvironment().getWordList(getText());
+    return list;
+  }
+
+  public String getText() {
+    return text;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordTableExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordTableExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordTableExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,33 @@
+package org.apache.uima.tm.textmarker.kernel.expression.resource;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.resource.TextMarkerTable;
+
+public class LiteralWordTableExpression extends WordTableExpression {
+
+  private final String text;
+
+  public LiteralWordTableExpression(String text) {
+    super();
+    if (text.startsWith("\'") && text.endsWith("\'")) {
+      text = text.substring(1, text.length() - 1);
+    }
+    this.text = stripEscapes(text); // hotfix for the escaping problem
+  }
+
+  public static String stripEscapes(String str) {
+    String result = str.replaceAll("\\\\\\\\", "\\\\");
+    return result.replaceAll("\\\\\\\"", "\\\"");
+  }
+
+  @Override
+  public TextMarkerTable getTable(TextMarkerStatement element) {
+    TextMarkerTable table = element.getEnvironment().getWordTable(getText());
+    return table;
+  }
+
+  public String getText() {
+    return text;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordTableExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/LiteralWordTableExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,23 @@
+package org.apache.uima.tm.textmarker.kernel.expression.resource;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.resource.TextMarkerWordList;
+
+public class ReferenceWordListExpression extends WordListExpression {
+
+  private String ref;
+
+  public ReferenceWordListExpression(String ref) {
+    super();
+    this.ref = ref;
+  }
+
+  @Override
+  public TextMarkerWordList getList(TextMarkerStatement element) {
+    return element.getEnvironment().getVariableValue(ref, TextMarkerWordList.class);
+  }
+
+  public String getRef() {
+    return ref;
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordTableExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordTableExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordTableExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,24 @@
+package org.apache.uima.tm.textmarker.kernel.expression.resource;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.resource.TextMarkerTable;
+
+public class ReferenceWordTableExpression extends WordTableExpression {
+
+  private String ref;
+
+  public ReferenceWordTableExpression(String ref) {
+    super();
+    this.ref = ref;
+  }
+
+  @Override
+  public TextMarkerTable getTable(TextMarkerStatement element) {
+    return element.getEnvironment().getVariableValue(ref, TextMarkerTable.class);
+  }
+
+  public String getRef() {
+    return ref;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordTableExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/ReferenceWordTableExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordListExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordListExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordListExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordListExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,11 @@
+package org.apache.uima.tm.textmarker.kernel.expression.resource;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.TextMarkerExpression;
+import org.apache.uima.tm.textmarker.resource.TextMarkerWordList;
+
+public abstract class WordListExpression extends TextMarkerExpression {
+
+  public abstract TextMarkerWordList getList(TextMarkerStatement element);
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordListExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordListExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordTableExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordTableExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordTableExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,11 @@
+package org.apache.uima.tm.textmarker.kernel.expression.resource;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.TextMarkerExpression;
+import org.apache.uima.tm.textmarker.resource.TextMarkerTable;
+
+public abstract class WordTableExpression extends TextMarkerExpression {
+
+  public abstract TextMarkerTable getTable(TextMarkerStatement element);
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordTableExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/resource/WordTableExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ComposedStringExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ComposedStringExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ComposedStringExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ComposedStringExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,30 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+
+public class ComposedStringExpression extends LiteralStringExpression {
+
+  private final List<StringExpression> epxressions;
+
+  public ComposedStringExpression(List<StringExpression> expressions) {
+    super();
+    this.epxressions = expressions;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    StringBuilder result = new StringBuilder();
+    for (StringExpression each : getExpressions()) {
+      result.append(each.getStringValue(parent));
+    }
+    return result.toString();
+  }
+
+  public List<StringExpression> getExpressions() {
+    return epxressions;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ComposedStringExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ComposedStringExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/LiteralStringExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/LiteralStringExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/LiteralStringExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/LiteralStringExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,6 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+
+public abstract class LiteralStringExpression extends StringExpression {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/LiteralStringExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/LiteralStringExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ReferenceStringExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ReferenceStringExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ReferenceStringExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ReferenceStringExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,24 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class ReferenceStringExpression extends LiteralStringExpression {
+
+  private final String var;
+
+  public ReferenceStringExpression(String var) {
+    super();
+    this.var = var;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    String variableValue = parent.getEnvironment().getVariableValue(getVar(), String.class);
+    return variableValue;
+  }
+
+  public String getVar() {
+    return var;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ReferenceStringExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/ReferenceStringExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/RemoveFunction.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/RemoveFunction.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/RemoveFunction.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/RemoveFunction.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,42 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+import java.util.List;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+
+public class RemoveFunction extends StringFunctionExpression {
+
+  private List<StringExpression> list;
+
+  private String var;
+
+  public RemoveFunction(String v, List<StringExpression> list) {
+    super();
+    this.var = v;
+    this.list = list;
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    StringBuilder result = new StringBuilder();
+    String value = parent.getEnvironment().getVariableValue(var, String.class);
+    for (StringExpression each : list) {
+      String string = each.getStringValue(parent);
+      String[] split = value.split(string);
+      for (String r : split) {
+        result.append(r);
+      }
+    }
+    return result.toString();
+  }
+
+  public List<StringExpression> getList() {
+    return list;
+  }
+
+  public String getVar() {
+    return var;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/RemoveFunction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/RemoveFunction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/SimpleStringExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/SimpleStringExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/SimpleStringExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/SimpleStringExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,31 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+public class SimpleStringExpression extends LiteralStringExpression {
+
+  private final String value;
+
+  public static String stripEscapes(String str) {
+    String result = str.replaceAll("\\\\\\\\", "\\\\");
+    return result.replaceAll("\\\\\\\"", "\\\"");
+  }
+
+  public SimpleStringExpression(String value) {
+    super();
+    if (value.startsWith("\"") && value.endsWith("\"")) {
+      value = value.substring(1, value.length() - 1);
+    }
+    this.value = stripEscapes(value); // hotfix for the escaping problem
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return getValue();
+  }
+
+  public String getValue() {
+    return value;
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/SimpleStringExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/SimpleStringExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,10 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.TextMarkerExpression;
+
+public abstract class StringExpression extends TextMarkerExpression {
+
+  public abstract String getStringValue(TextMarkerStatement parent);
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,5 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+public abstract class StringFunctionExpression extends StringExpression {
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionFactory.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionFactory.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionFactory.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,13 @@
+package org.apache.uima.tm.textmarker.kernel.expression.string;
+
+import java.util.List;
+
+import org.antlr.runtime.Token;
+
+public class StringFunctionFactory {
+
+  public static StringExpression createRemoveFunction(Token var, List<StringExpression> list) {
+    String v = var == null ? "" : var.getText();
+    return new RemoveFunction(v, list);
+  }
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionFactory.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/string/StringFunctionFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/ReferenceTypeExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/ReferenceTypeExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/ReferenceTypeExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/ReferenceTypeExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,36 @@
+package org.apache.uima.tm.textmarker.kernel.expression.type;
+
+import org.apache.uima.cas.Type;
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+
+public class ReferenceTypeExpression extends TypeExpression {
+
+  private final String var;
+
+  public ReferenceTypeExpression(String varString) {
+    super();
+    this.var = varString;
+  }
+
+  @Override
+  public String toString() {
+    return getVar();
+  }
+
+  public String getVar() {
+    return var;
+  }
+
+  @Override
+  public Type getType(TextMarkerStatement parent) {
+    return parent.getEnvironment().getVariableValue(var, Type.class);
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    Type type = getType(parent);
+    return type != null ? type.getName() : "null";
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/ReferenceTypeExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/ReferenceTypeExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/SimpleTypeExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/SimpleTypeExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/SimpleTypeExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/SimpleTypeExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,31 @@
+package org.apache.uima.tm.textmarker.kernel.expression.type;
+
+import org.apache.uima.cas.Type;
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+
+
+public class SimpleTypeExpression extends TypeExpression {
+
+  private final Type type;
+
+  public SimpleTypeExpression(Type type) {
+    super();
+    this.type = type;
+  }
+
+  @Override
+  public Type getType(TextMarkerStatement parent) {
+    return type;
+  }
+
+  @Override
+  public String toString() {
+    return type.getShortName();
+  }
+
+  @Override
+  public String getStringValue(TextMarkerStatement parent) {
+    return type.getName();
+  }
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/SimpleTypeExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/SimpleTypeExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/TypeExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/TypeExpression.java?rev=1152824&view=auto
==============================================================================
--- uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/TypeExpression.java (added)
+++ uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/TypeExpression.java Mon Aug  1 15:24:44 2011
@@ -0,0 +1,12 @@
+package org.apache.uima.tm.textmarker.kernel.expression.type;
+
+import org.apache.uima.cas.Type;
+import org.apache.uima.tm.textmarker.kernel.TextMarkerStatement;
+import org.apache.uima.tm.textmarker.kernel.expression.string.StringExpression;
+
+
+public abstract class TypeExpression extends StringExpression {
+
+  public abstract Type getType(TextMarkerStatement parent);
+
+}

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/TypeExpression.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: uima/sandbox/trunk/TextMarker/org.apache.uima.tm.textmarker.engine/src/main/java/org/apache/uima/tm/textmarker/kernel/expression/type/TypeExpression.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain