You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by jo...@apache.org on 2011/02/10 13:03:31 UTC

svn commit: r1069348 - /uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java

Author: joern
Date: Thu Feb 10 12:03:31 2011
New Revision: 1069348

URL: http://svn.apache.org/viewvc?rev=1069348&view=rev
Log:
UIMA-2042 Replaced JCAS with CAS API.

Modified:
    uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java

Modified: uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java?rev=1069348&r1=1069347&r2=1069348&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java (original)
+++ uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java Thu Feb 10 12:03:31 2011
@@ -19,30 +19,31 @@ package org.apache.uima.solrcas;
  * under the License.
  */
 
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
 import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.core.CoreContainer;
 import org.apache.uima.UimaContext;
-import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
+import org.apache.uima.analysis_component.CasAnnotator_ImplBase;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.FSIterator;
+import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.jcas.JCas;
-import org.apache.uima.jcas.tcas.Annotation;
+import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Level;
 
-import java.net.URI;
-import java.net.URL;
-import java.util.Map;
-
 /**
  * CAS Consumer to write on a Solr instance
  */
-public class SolrCASConsumer extends JCasAnnotator_ImplBase {
+public class SolrCASConsumer extends CasAnnotator_ImplBase {
 
   private SolrServer solrServer;
 
@@ -99,41 +100,46 @@ public class SolrCASConsumer extends JCa
     return solrServer;
   }
 
-  public void process(JCas jCas) throws AnalysisEngineProcessException {
-    try {
+  public void process(CAS cas) throws AnalysisEngineProcessException {
+	  
       SolrInputDocument document = new SolrInputDocument();
       if (mappingConfig.getCasMapping()!=null && mappingConfig.getCasMapping().length()>0)
-        document.addField(mappingConfig.getCasMapping(), jCas.toString());
+        document.addField(mappingConfig.getCasMapping(), cas.toString());
       if (mappingConfig.getDocumentTextMapping()!=null && mappingConfig.getDocumentTextMapping().length()>0)
-        document.addField(mappingConfig.getDocumentTextMapping(), jCas.getDocumentText());
+        document.addField(mappingConfig.getDocumentTextMapping(), cas.getDocumentText());
       if (mappingConfig.getDocumentLanguageMapping()!=null && mappingConfig.getDocumentLanguageMapping().length()>0)
-        document.addField(mappingConfig.getDocumentLanguageMapping(), jCas.getDocumentLanguage());
+        document.addField(mappingConfig.getDocumentLanguageMapping(), cas.getDocumentLanguage());
       for (String key : mappingConfig.getFeatureStructuresMapping().keySet()) {
-        FeatureStructure fsMock = (FeatureStructure) Class.forName(key).getConstructor(
-                JCas.class).newInstance(jCas);
-        Type type = fsMock.getType();
-        for (FSIterator<FeatureStructure> iterator = jCas.getFSIndexRepository().getAllIndexedFS(type); iterator
+        Type type = cas.getTypeSystem().getType(key);
+        
+        for (FSIterator<FeatureStructure> iterator = cas.getIndexRepository().getAllIndexedFS(type); iterator
                 .hasNext();) {
           FeatureStructure fs = iterator.next();
           Map<String, String> stringStringMap = mappingConfig.getFeatureStructuresMapping().get(key);
+          
           for (String featureName : stringStringMap.keySet()) {
+        	  
             String fieldName = stringStringMap.get(featureName);
 
-            String featureValue = null;
-            if (fs instanceof Annotation && "coveredText".equals(featureName)) {
-              featureValue = ((Annotation) fs).getCoveredText();
+            String featureValue;
+            
+            if (fs instanceof AnnotationFS && "coveredText".equals(featureName)) {
+              featureValue = ((AnnotationFS) fs).getCoveredText();
             } else {
-              featureValue = fs.getFeatureValueAsString(type.getFeatureByBaseName(featureName));
+              Feature feature = type.getFeatureByBaseName(featureName);
+              featureValue = fs.getFeatureValueAsString(feature);
             }
+            
             document.addField(fieldName, featureValue);
           }
         }
       }
-      solrServer.add(document);
-      solrServer.commit();
-
-    } catch (Exception e) {
-      throw new AnalysisEngineProcessException(e);
-    }
+      
+      try {
+        solrServer.add(document);
+        solrServer.commit();
+	  } catch (Exception e) {
+	    throw new AnalysisEngineProcessException(e);
+	  }
   }
 }