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 2018/12/21 14:35:35 UTC
svn commit: r1849481 - in /uima/ruta/trunk:
ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/
ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/
ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/
Author: pkluegl
Date: Fri Dec 21 14:35:35 2018
New Revision: 1849481
URL: http://svn.apache.org/viewvc?rev=1849481&view=rev
Log:
UIMA-5489: improved verbalization
Added:
uima/ruta/trunk/ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/
uima/ruta/trunk/ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/VerbalizerTest.java
Modified:
uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/BooleanOperationsExtension.java
uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/ContainsBooleanFunction.java
uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EndsWithBooleanFunction.java
uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsBooleanFunction.java
uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsIgnoreCaseBooleanFunction.java
uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/StartsWithBooleanFunction.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/BooleanOperationsExtension.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/BooleanOperationsExtension.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/BooleanOperationsExtension.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/BooleanOperationsExtension.java Fri Dec 21 14:35:35 2018
@@ -31,38 +31,39 @@ import org.apache.uima.ruta.verbalize.Ru
public class BooleanOperationsExtension implements IRutaBooleanFunctionExtension {
- private final String[] knownExtensions = new String[] { "contains", "endsWith",
- "startsWith", "equals", "equalsIgnoreCase", "isEmpty" };
+ private final String[] knownExtensions = new String[] { "contains", "endsWith", "startsWith",
+ "equals", "equalsIgnoreCase", "isEmpty" };
private final Class<?>[] extensions = new Class[] { ContainsBooleanFunction.class,
- EndsWithBooleanFunction.class, StartsWithBooleanFunction.class,
- EqualsBooleanFunction.class, EqualsIgnoreCaseBooleanFunction.class,
- IsEmptyBooleanFunction.class };
+ EndsWithBooleanFunction.class, StartsWithBooleanFunction.class, EqualsBooleanFunction.class,
+ EqualsIgnoreCaseBooleanFunction.class, IsEmptyBooleanFunction.class };
-
-
+ @Override
public String verbalize(RutaElement element, RutaVerbalizer verbalizer) {
if (element instanceof ContainsBooleanFunction) {
return verbalizeName(element) + "("
- + verbalizer.verbalize(((ContainsBooleanFunction) element).getExpr()) + ")";
+ + verbalizer.verbalize(((ContainsBooleanFunction) element).getExpr()) + ","
+ + verbalizer.verbalize(((ContainsBooleanFunction) element).getContainsExpr()) + ")";
} else if (element instanceof EndsWithBooleanFunction) {
return verbalizeName(element) + "("
- + verbalizer.verbalize(((EndsWithBooleanFunction) element).getExpr()) + ")";
- }
- //
- else if (element instanceof StartsWithBooleanFunction) {
+ + verbalizer.verbalize(((EndsWithBooleanFunction) element).getExpr()) + ","
+ + verbalizer.verbalize(((EndsWithBooleanFunction) element).getEndExpr()) + ")";
+ } else if (element instanceof StartsWithBooleanFunction) {
return verbalizeName(element) + "("
- + verbalizer.verbalize(((StartsWithBooleanFunction) element).getExpr()) + ")";
+ + verbalizer.verbalize(((StartsWithBooleanFunction) element).getExpr()) + ","
+ + verbalizer.verbalize(((StartsWithBooleanFunction) element).getStartExpr()) + ")";
} else if (element instanceof EqualsBooleanFunction) {
return verbalizeName(element) + "("
- + verbalizer.verbalize(((EqualsBooleanFunction) element).getExpr()) + ")";
+ + verbalizer.verbalize(((EqualsBooleanFunction) element).getExpr()) + ","
+ + verbalizer.verbalize(((EqualsBooleanFunction) element).getCompareExpr()) + ")";
} else if (element instanceof EqualsIgnoreCaseBooleanFunction) {
return verbalizeName(element) + "("
- + verbalizer.verbalize(((EqualsIgnoreCaseBooleanFunction) element).getExpr()) + ")";
+ + verbalizer.verbalize(((EqualsIgnoreCaseBooleanFunction) element).getExpr()) + ","
+ + verbalizer.verbalize(((EqualsIgnoreCaseBooleanFunction) element).getCompareExpr())
+ + ")";
} else if (element instanceof IsEmptyBooleanFunction) {
return verbalizeName(element) + "("
- + verbalizer.verbalize(((IsEmptyBooleanFunction) element).getExpr())
- + ")";
+ + verbalizer.verbalize(((IsEmptyBooleanFunction) element).getExpr()) + ")";
}
//
else {
@@ -70,46 +71,44 @@ public class BooleanOperationsExtension
}
}
-
+ @Override
public String verbalizeName(RutaElement element) {
-
- if (element instanceof ContainsBooleanFunction) {
+
+ if (element instanceof ContainsBooleanFunction) {
return knownExtensions[0];
}
-
- else if (element instanceof EndsWithBooleanFunction) {
+
+ else if (element instanceof EndsWithBooleanFunction) {
return knownExtensions[1];
}
-
else if (element instanceof StartsWithBooleanFunction) {
return knownExtensions[2];
}
-
+
else if (element instanceof EqualsBooleanFunction) {
return knownExtensions[3];
}
-
+
else if (element instanceof EqualsIgnoreCaseBooleanFunction) {
return knownExtensions[4];
}
-
+
else if (element instanceof IsEmptyBooleanFunction) {
return knownExtensions[5];
}
-
-
-
else {
return "UnknownStringFunction";
}
}
+ @Override
public String[] getKnownExtensions() {
return knownExtensions;
}
+ @Override
public Class<?>[] extensions() {
return extensions;
}
@@ -117,41 +116,44 @@ public class BooleanOperationsExtension
@Override
public BooleanFunctionExpression createBooleanFunction(String name, List<RutaExpression> args)
throws RutaParseException {
- if(args ==null ){
- throw new RutaParseException("You have to specify at least 1 Argument to use these Functions !");
+ if (args == null) {
+ throw new RutaParseException(
+ "You have to specify at least 1 Argument to use these Functions !");
}
-
+
if (name.equals(knownExtensions[5])) {
return new IsEmptyBooleanFunction((IStringExpression) args.get(0));
}
-
- if (args == null || args.size()<2) {
- throw new RutaParseException("You have to specify at least 2 Arguments to use these Functions !");
+
+ if (args == null || args.size() < 2) {
+ throw new RutaParseException(
+ "You have to specify at least 2 Arguments to use these Functions !");
}
if (name.equals(knownExtensions[0])) {
- return new ContainsBooleanFunction((IStringExpression) args.get(0), (IStringExpression) args.get(1));
+ return new ContainsBooleanFunction((IStringExpression) args.get(0),
+ (IStringExpression) args.get(1));
}
else if (name.equals(knownExtensions[1])) {
- return new EndsWithBooleanFunction((IStringExpression) args.get(0),(IStringExpression) args.get(1));
+ return new EndsWithBooleanFunction((IStringExpression) args.get(0),
+ (IStringExpression) args.get(1));
}
else if (name.equals(knownExtensions[2])) {
- return new StartsWithBooleanFunction((IStringExpression) args.get(0),(IStringExpression) args.get(1));
+ return new StartsWithBooleanFunction((IStringExpression) args.get(0),
+ (IStringExpression) args.get(1));
}
-
- if (name.equals(knownExtensions[3])) {
- return new EqualsBooleanFunction((IStringExpression) args.get(0),(IStringExpression) args.get(1));
- }
- else if (name.equals(knownExtensions[4])) {
- return new EqualsIgnoreCaseBooleanFunction((IStringExpression) args.get(0),(IStringExpression) args.get(1));
+
+ if (name.equals(knownExtensions[3])) {
+ return new EqualsBooleanFunction((IStringExpression) args.get(0),
+ (IStringExpression) args.get(1));
+ } else if (name.equals(knownExtensions[4])) {
+ return new EqualsIgnoreCaseBooleanFunction((IStringExpression) args.get(0),
+ (IStringExpression) args.get(1));
}
-
-
+
return null;
}
-
-
}
Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/ContainsBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/ContainsBooleanFunction.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/ContainsBooleanFunction.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/ContainsBooleanFunction.java Fri Dec 21 14:35:35 2018
@@ -17,7 +17,6 @@
* under the License.
*/
-
package org.apache.uima.ruta.string.bool;
import org.apache.uima.ruta.RutaStream;
@@ -26,29 +25,34 @@ import org.apache.uima.ruta.expression.s
import org.apache.uima.ruta.rule.MatchContext;
public class ContainsBooleanFunction extends BooleanFunctionExpression {
-
+
private IStringExpression text;
+
private IStringExpression contains;
-
- public ContainsBooleanFunction(IStringExpression text,
- IStringExpression contains) {
+
+ public ContainsBooleanFunction(IStringExpression text, IStringExpression contains) {
this.text = text;
- this.contains =contains;
+ this.contains = contains;
}
public IStringExpression getExpr() {
return text;
}
+ public IStringExpression getContainsExpr() {
+ return contains;
+ }
+
@Override
public boolean getBooleanValue(MatchContext context, RutaStream stream) {
-
-return text.getStringValue(context, stream).contains(contains.getStringValue(context, stream));
+
+ return text.getStringValue(context, stream).contains(contains.getStringValue(context, stream));
}
@Override
public String getStringValue(MatchContext context, RutaStream stream) {
- Boolean isContained = text.getStringValue(context, stream).contains(contains.getStringValue(context, stream));
+ Boolean isContained = text.getStringValue(context, stream)
+ .contains(contains.getStringValue(context, stream));
return isContained.toString();
}
Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EndsWithBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EndsWithBooleanFunction.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EndsWithBooleanFunction.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EndsWithBooleanFunction.java Fri Dec 21 14:35:35 2018
@@ -17,7 +17,6 @@
* under the License.
*/
-
package org.apache.uima.ruta.string.bool;
import org.apache.uima.ruta.RutaStream;
@@ -27,19 +26,23 @@ import org.apache.uima.ruta.rule.MatchCo
public class EndsWithBooleanFunction extends BooleanFunctionExpression {
private IStringExpression text;
+
private IStringExpression end;
-
- public EndsWithBooleanFunction(IStringExpression text,
- IStringExpression end) {
+
+ public EndsWithBooleanFunction(IStringExpression text, IStringExpression end) {
this.text = text;
this.end = end;
-
+
}
public IStringExpression getExpr() {
return text;
}
+ public IStringExpression getEndExpr() {
+ return end;
+ }
+
@Override
public boolean getBooleanValue(MatchContext context, RutaStream stream) {
return text.getStringValue(context, stream).endsWith(end.getStringValue(context, stream));
@@ -47,7 +50,8 @@ public class EndsWithBooleanFunction ext
@Override
public String getStringValue(MatchContext context, RutaStream stream) {
- Boolean endsWith = text.getStringValue(context, stream).endsWith(end.getStringValue(context, stream));
+ Boolean endsWith = text.getStringValue(context, stream)
+ .endsWith(end.getStringValue(context, stream));
return endsWith.toString();
}
}
Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsBooleanFunction.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsBooleanFunction.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsBooleanFunction.java Fri Dec 21 14:35:35 2018
@@ -17,7 +17,6 @@
* under the License.
*/
-
package org.apache.uima.ruta.string.bool;
import org.apache.uima.ruta.RutaStream;
@@ -26,13 +25,12 @@ import org.apache.uima.ruta.expression.s
import org.apache.uima.ruta.rule.MatchContext;
public class EqualsBooleanFunction extends BooleanFunctionExpression {
-
+
private IStringExpression text;
+
private IStringExpression compare;
-
-
- public EqualsBooleanFunction(IStringExpression text,
- IStringExpression compare) {
+
+ public EqualsBooleanFunction(IStringExpression text, IStringExpression compare) {
this.text = text;
this.compare = compare;
}
@@ -41,6 +39,10 @@ public class EqualsBooleanFunction exten
return text;
}
+ public IStringExpression getCompareExpr() {
+ return compare;
+ }
+
@Override
public boolean getBooleanValue(MatchContext context, RutaStream stream) {
return text.getStringValue(context, stream).equals(compare.getStringValue(context, stream));
@@ -48,7 +50,8 @@ public class EqualsBooleanFunction exten
@Override
public String getStringValue(MatchContext context, RutaStream stream) {
- Boolean equals = text.getStringValue(context, stream).equals(compare.getStringValue(context, stream));
+ Boolean equals = text.getStringValue(context, stream)
+ .equals(compare.getStringValue(context, stream));
return equals.toString();
}
}
Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsIgnoreCaseBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsIgnoreCaseBooleanFunction.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsIgnoreCaseBooleanFunction.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/EqualsIgnoreCaseBooleanFunction.java Fri Dec 21 14:35:35 2018
@@ -25,13 +25,12 @@ import org.apache.uima.ruta.expression.s
import org.apache.uima.ruta.rule.MatchContext;
public class EqualsIgnoreCaseBooleanFunction extends BooleanFunctionExpression {
-
+
private IStringExpression text;
+
private IStringExpression compare;
-
-
- public EqualsIgnoreCaseBooleanFunction(IStringExpression text,
- IStringExpression compare) {
+
+ public EqualsIgnoreCaseBooleanFunction(IStringExpression text, IStringExpression compare) {
this.text = text;
this.compare = compare;
}
@@ -40,14 +39,20 @@ public class EqualsIgnoreCaseBooleanFunc
return text;
}
+ public IStringExpression getCompareExpr() {
+ return compare;
+ }
+
@Override
public boolean getBooleanValue(MatchContext context, RutaStream stream) {
- return text.getStringValue(context, stream).equalsIgnoreCase(compare.getStringValue(context, stream));
+ return text.getStringValue(context, stream)
+ .equalsIgnoreCase(compare.getStringValue(context, stream));
}
@Override
public String getStringValue(MatchContext context, RutaStream stream) {
- Boolean equals = text.getStringValue(context, stream).equalsIgnoreCase(compare.getStringValue(context, stream));
+ Boolean equals = text.getStringValue(context, stream)
+ .equalsIgnoreCase(compare.getStringValue(context, stream));
return equals.toString();
}
}
Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/StartsWithBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/StartsWithBooleanFunction.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/StartsWithBooleanFunction.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/string/bool/StartsWithBooleanFunction.java Fri Dec 21 14:35:35 2018
@@ -40,16 +40,19 @@ public class StartsWithBooleanFunction e
return text;
}
+ public IStringExpression getStartExpr() {
+ return start;
+ }
+
@Override
public boolean getBooleanValue(MatchContext context, RutaStream stream) {
- return text.getStringValue(context, stream).startsWith(
- start.getStringValue(context, stream));
+ return text.getStringValue(context, stream).startsWith(start.getStringValue(context, stream));
}
@Override
public String getStringValue(MatchContext context, RutaStream stream) {
- Boolean endsWith = text.getStringValue(context, stream).startsWith(
- start.getStringValue(context, stream));
+ Boolean endsWith = text.getStringValue(context, stream)
+ .startsWith(start.getStringValue(context, stream));
return endsWith.toString();
}
}
Added: uima/ruta/trunk/ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/VerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/VerbalizerTest.java?rev=1849481&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/VerbalizerTest.java (added)
+++ uima/ruta/trunk/ruta-core-ext/src/test/java/org/apache/uima/ruta/string/bool/VerbalizerTest.java Fri Dec 21 14:35:35 2018
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.ruta.string.bool;
+
+import org.apache.uima.ruta.expression.string.SimpleStringExpression;
+import org.apache.uima.ruta.verbalize.RutaVerbalizer;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class VerbalizerTest {
+
+ @Test
+ public void test() {
+ ContainsBooleanFunction f = new ContainsBooleanFunction(new SimpleStringExpression("abc"),
+ new SimpleStringExpression("def"));
+
+ BooleanOperationsExtension extension = new BooleanOperationsExtension();
+ String verbalize = extension.verbalize(f, new RutaVerbalizer());
+
+ Assert.assertEquals("contains(\"abc\",\"def\")", verbalize);
+ }
+}
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java?rev=1849481&r1=1849480&r2=1849481&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java Fri Dec 21 14:35:35 2018
@@ -247,6 +247,10 @@ public class ActionVerbalizerTest {
s = v.verbalize(a);
assertEquals("MATCHEDTEXT(anyVar, 4, numVar)", s);
+ a = new MatchedTextAction(var, null);
+ s = v.verbalize(a);
+ assertEquals("MATCHEDTEXT(anyVar)", s);
+
// MERGE
a = new MergeAction(boolExpr1, var, listExprList);
s = v.verbalize(a);