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 2016/01/02 16:26:49 UTC

svn commit: r1722637 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java

Author: schor
Date: Sat Jan  2 15:26:49 2016
New Revision: 1722637

URL: http://svn.apache.org/viewvc?rev=1722637&view=rev
Log:
[UIMA-4674] use non-copying getFeatureImpls and stream

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java?rev=1722637&r1=1722636&r2=1722637&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java Sat Jan  2 15:26:49 2016
@@ -40,6 +40,10 @@ import org.apache.uima.cas.CASException;
 import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.FeatureImpl;
+import org.apache.uima.cas.impl.TypeImpl;
+import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.cas.text.Language;
 import org.apache.uima.internal.util.JmxMBeanAgent;
 import org.apache.uima.jcas.JCas;
@@ -363,22 +367,12 @@ public abstract class AnalysisEngineImpl
    */
   public synchronized String[] getFeatureNamesForType(String aTypeName) {
     // build CAS and populate mFirstTypeSystem
-    CAS cas = getCasManager().getCas(this.getUimaContextAdmin().getQualifiedContextName());
-    TypeSystem ts = cas.getTypeSystem();
+    CASImpl cas = (CASImpl) getCasManager().getCas(this.getUimaContextAdmin().getQualifiedContextName());
+    TypeSystemImpl ts = cas.getTypeSystemImpl();
     getCasManager().releaseCas(cas);
 
-    Type t = ts.getType(aTypeName);
-    if (t != null) {
-      List<Feature> features = t.getFeatures();
-      String[] featNames = new String[features.size()];
-      for (int i = 0; i < features.size(); i++) {
-        Feature f = features.get(i);
-        featNames[i] = f.getShortName();
-      }
-      return featNames;
-    } else {
-      return null;
-    }
+    TypeImpl t = ts.getType(aTypeName);
+    return (t == null) ? null : t.getFeatureImpls().stream().map(f -> f.getShortName()).toArray(size -> new String[size]);
   }
 
   /*