You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2008/01/27 15:14:54 UTC

svn commit: r615607 - in /incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata: LanguagePrecondition.java impl/LanguagePrecondition_impl.java

Author: schor
Date: Sun Jan 27 06:14:51 2008
New Revision: 615607

URL: http://svn.apache.org/viewvc?rev=615607&view=rev
Log:
[UIMA-722]

Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/LanguagePrecondition.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/LanguagePrecondition_impl.java

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/LanguagePrecondition.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/LanguagePrecondition.java?rev=615607&r1=615606&r2=615607&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/LanguagePrecondition.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/LanguagePrecondition.java Sun Jan 27 06:14:51 2008
@@ -50,6 +50,11 @@
    * {@link #setDefault(boolean) default} property determines whether this precondition is
    * satisfied.
    * 
+   * The ISO language identifiers are cannonicalized by lower-casing them and replacing
+   * underscores with hyphens.  Also, if any of the identifiers are x-unspecified, the array
+   * is replaced with an array of just one element: x-unspecified, since all languages are defined
+   * to match that one.
+   * 
    * @param aLanguages
    *          the languages that satisfy this precondition
    * 

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/LanguagePrecondition_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/LanguagePrecondition_impl.java?rev=615607&r1=615606&r2=615607&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/LanguagePrecondition_impl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/LanguagePrecondition_impl.java Sun Jan 27 06:14:51 2008
@@ -27,6 +27,7 @@
 import org.apache.uima.cas.ConstraintFactory;
 import org.apache.uima.cas.FSMatchConstraint;
 import org.apache.uima.cas.FSTypeConstraint;
+import org.apache.uima.cas.text.Language;
 import org.apache.uima.resource.metadata.LanguagePrecondition;
 
 /**
@@ -70,7 +71,18 @@
       throw new UIMA_IllegalArgumentException(UIMA_IllegalArgumentException.ILLEGAL_ARGUMENT,
               new Object[] { aValue, "aValue", "setComparisonValue" });
     }
-    super.setComparisonValue(aValue);
+    String [] languages = (String []) aValue;
+    String [] normalizedLanguages = new String[languages.length];
+    int i = 0;
+    for (String language : languages) {
+      normalizedLanguages[i++] = Language.normalize(language);
+      if (Language.UNSPECIFIED_LANGUAGE.equals(normalizedLanguages[i-1])) {
+        // return new object to guard against modifications
+        super.setComparisonValue(new String[]{Language.UNSPECIFIED_LANGUAGE});
+        return;
+      }
+    }
+    super.setComparisonValue(normalizedLanguages);
   }
 
   /**