You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2016/08/03 18:39:24 UTC

svn commit: r1755105 - /uima/uimafit/trunk/uimafit-core/src/main/java/org/apache/uima/fit/factory/CapabilityFactory.java

Author: rec
Date: Wed Aug  3 18:39:24 2016
New Revision: 1755105

URL: http://svn.apache.org/viewvc?rev=1755105&view=rev
Log:
[UIMA-5039] Language and mimetype capabilities only added if type/sofa capabilities present

Modified:
    uima/uimafit/trunk/uimafit-core/src/main/java/org/apache/uima/fit/factory/CapabilityFactory.java

Modified: uima/uimafit/trunk/uimafit-core/src/main/java/org/apache/uima/fit/factory/CapabilityFactory.java
URL: http://svn.apache.org/viewvc/uima/uimafit/trunk/uimafit-core/src/main/java/org/apache/uima/fit/factory/CapabilityFactory.java?rev=1755105&r1=1755104&r2=1755105&view=diff
==============================================================================
--- uima/uimafit/trunk/uimafit-core/src/main/java/org/apache/uima/fit/factory/CapabilityFactory.java (original)
+++ uima/uimafit/trunk/uimafit-core/src/main/java/org/apache/uima/fit/factory/CapabilityFactory.java Wed Aug  3 18:39:24 2016
@@ -47,14 +47,24 @@ public final class CapabilityFactory {
    * @return capabilities extracted from the class
    */
   public static Capability createCapability(Class<?> componentClass) {
-    if (!ReflectionUtil.isAnnotationPresent(componentClass, SofaCapability.class)
-            && !ReflectionUtil.isAnnotationPresent(componentClass, TypeCapability.class)) {
+    boolean sofaCapabilityPresent = ReflectionUtil.isAnnotationPresent(componentClass,
+            SofaCapability.class);
+    boolean typeCapabilityPresent = ReflectionUtil.isAnnotationPresent(componentClass,
+            TypeCapability.class);
+    boolean mimeTypeCapabilityPresent = ReflectionUtil.isAnnotationPresent(componentClass,
+            MimeTypeCapability.class);
+    boolean languageCapabilityPresent = ReflectionUtil.isAnnotationPresent(componentClass,
+            LanguageCapability.class);
+    
+    // Skip if no capability annotations are present at all
+    if (!sofaCapabilityPresent && !typeCapabilityPresent && !mimeTypeCapabilityPresent
+            && !languageCapabilityPresent) {
       return null;
     }
 
     Capability capability = new Capability_impl();
 
-    if (ReflectionUtil.isAnnotationPresent(componentClass, LanguageCapability.class)) {
+    if (languageCapabilityPresent) {
       LanguageCapability annotation = ReflectionUtil.getAnnotation(componentClass,
               LanguageCapability.class);
       String[] languages = annotation.value();
@@ -64,7 +74,7 @@ public final class CapabilityFactory {
       capability.setLanguagesSupported(languages);
     }
     
-    if (ReflectionUtil.isAnnotationPresent(componentClass, MimeTypeCapability.class)) {
+    if (mimeTypeCapabilityPresent) {
       MimeTypeCapability annotation = ReflectionUtil.getAnnotation(componentClass,
               MimeTypeCapability.class);
       String[] mimeTypes = annotation.value();
@@ -74,7 +84,7 @@ public final class CapabilityFactory {
       capability.setMimeTypesSupported(mimeTypes);
     }
     
-    if (ReflectionUtil.isAnnotationPresent(componentClass, SofaCapability.class)) {
+    if (sofaCapabilityPresent) {
       SofaCapability annotation = ReflectionUtil.getAnnotation(componentClass, SofaCapability.class);
       String[] inputSofas = annotation.inputSofas();
       if (inputSofas.length == 1 && inputSofas[0].equals(SofaCapability.NO_DEFAULT_VALUE)) {
@@ -89,7 +99,7 @@ public final class CapabilityFactory {
       capability.setOutputSofas(outputSofas);
     }
 
-    if (ReflectionUtil.isAnnotationPresent(componentClass, TypeCapability.class)) {
+    if (typeCapabilityPresent) {
       TypeCapability annotation = ReflectionUtil.getAnnotation(componentClass, TypeCapability.class);
       String[] inputTypesOrFeatureNames = annotation.inputs();
       capability.setInputs(createTypesOrFeatures(inputTypesOrFeatureNames));