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);
+         }
   }
 }


Reply via email to