You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ap...@apache.org on 2014/02/02 02:21:50 UTC
svn commit: r1563535 - in /uima/ruta/trunk/ruta-core/src:
main/java/org/apache/uima/ruta/RutaEnvironment.java
test/java/org/apache/uima/ruta/ImportStatementsTest.java
Author: apatry
Date: Sun Feb 2 01:21:49 2014
New Revision: 1563535
URL: http://svn.apache.org/r1563535
Log:
UIMA-3303 Import type aliases when strictMode is off
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/ImportStatementsTest.java
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java?rev=1563535&r1=1563534&r2=1563535&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java Sun Feb 2 01:21:49 2014
@@ -186,6 +186,7 @@ public class RutaEnvironment {
} else {
// import all types known to the cas
importAllTypes(cas.getTypeSystem());
+ importTypeAliases(cas.getTypeSystem());
}
// "Document" can be resolved to "uima.tcas.DocumentAnnotation" or "org.apache.uima.ruta.type.Document",
@@ -222,6 +223,27 @@ public class RutaEnvironment {
}
/**
+ * Imports all type aliases.
+ *
+ * @param casTS Cas type system.
+ */
+ private void importTypeAliases(TypeSystem casTS) {
+ // Add types that are imported explicitly
+ for (List<Alias> aliases : typeImports.values()) {
+ for (Alias alias : aliases) {
+ if (!alias.shortName.equals(alias.longName)) {
+ // we only import aliases
+ Type type = casTS.getType(alias.longName);
+ if (type == null) {
+ throw new RuntimeException("Type '" + alias.longName + "' not found");
+ }
+ addType(alias.shortName, casTS.getType(alias.longName));
+ }
+ }
+ }
+ }
+
+ /**
* Import all types that are declared by the script or the typesystems it reference.
*
* @param casTS Type system containing all known types.
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/ImportStatementsTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/ImportStatementsTest.java?rev=1563535&r1=1563534&r2=1563535&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/ImportStatementsTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/ImportStatementsTest.java Sun Feb 2 01:21:49 2014
@@ -132,6 +132,21 @@ public class ImportStatementsTest {
}
@Test
+ public void testImportTypeAsStrictModeOff() throws Exception {
+ AnalysisEngine ae = createAE(NAMESPACE + "/" + NAME + "ImportTypeAs", false);
+ try {
+ CAS cas = ae.newCAS();
+ cas.setDocumentText("First Second");
+ ae.process(cas);
+
+ assertEquals(Arrays.asList("First"), selectText(cas, "org.apache.uima.ruta.Type1"));
+ assertEquals(Arrays.asList("Second"), selectText(cas, "org.apache.uima.ruta.Type2"));
+ } finally {
+ ae.destroy();
+ }
+ }
+
+ @Test
public void testImportStarFromTypeSystem() throws Exception {
AnalysisEngine ae = createAE(NAMESPACE + "/" + NAME + "ImportStarFromTypeSystem", true);
try {