Search in sources :

Example 6 with Annotation

use of org.apache.uima.jcas.tcas.Annotation in project stanbol by apache.

the class UIMALocal method concertToCasLight.

private List<FeatureStructure> concertToCasLight(JCas jcas, String typeName) {
    List<FeatureStructure> ret = new ArrayList<FeatureStructure>();
    Type type = jcas.getTypeSystem().getType(typeName);
    List<org.apache.uima.cas.Feature> featList = type.getFeatures();
    for (FSIterator<org.apache.uima.cas.FeatureStructure> iterator = jcas.getFSIndexRepository().getAllIndexedFS(type); iterator.hasNext(); ) {
        org.apache.uima.cas.FeatureStructure casFs = iterator.next();
        logger.debug("Processing UIMA CAS FeatureSet:" + casFs.toString());
        FeatureStructure newFs = new FeatureStructure(UUID.randomUUID().toString(), type.getShortName());
        for (org.apache.uima.cas.Feature casF : featList) {
            String fName = casF.getShortName();
            logger.debug("Feature Name:" + fName);
            if (casF.getRange().getName().equals("uima.cas.Sofa")) {
                continue;
            }
            if (casF.getRange().isPrimitive()) {
                logger.debug("Getting primitive value...");
                if (casF.getRange().getName().equals("uima.cas.String")) {
                    String fVal = casFs.getStringValue(casF);
                    newFs.addFeature(new Feature<String>(fName, fVal));
                } else if (casF.getRange().getName().equals("uima.cas.Integer")) {
                    int fVal = casFs.getIntValue(casF);
                    newFs.addFeature(new Feature<Integer>(fName, fVal));
                } else if (casF.getRange().getName().equals("uima.cas.Short")) {
                    short fVal = casFs.getShortValue(casF);
                    newFs.addFeature(new Feature<Integer>(fName, (int) fVal));
                } else if (casF.getRange().getName().equals("uima.cas.Byte")) {
                    byte fVal = casFs.getByteValue(casF);
                    newFs.addFeature(new Feature<Integer>(fName, (int) fVal));
                } else if (casF.getRange().getName().equals("uima.cas.Double")) {
                    double fVal = casFs.getDoubleValue(casF);
                    newFs.addFeature(new Feature<Double>(fName, fVal));
                } else if (casF.getRange().getName().equals("uima.cas.Float")) {
                    float fVal = casFs.getFloatValue(casF);
                    newFs.addFeature(new Feature<Double>(fName, (double) fVal));
                } else {
                    Object fVal = casFs.clone();
                    newFs.addFeature(new Feature<Object>(fName, fVal));
                }
            } else {
                logger.debug("Getting FeatureStructure value...");
                throw new UnsupportedOperationException("This client cannot handle FeatureStructure features");
            }
            if (casFs instanceof Annotation && "coveredText".equals(fName)) {
                newFs.setCoveredText(((Annotation) casFs).getCoveredText());
            }
        }
        logger.debug("FeatureStructure:" + newFs);
        ret.add(newFs);
    }
    return ret;
}
Also used : ArrayList(java.util.ArrayList) Feature(org.apache.stanbol.commons.caslight.Feature) Annotation(org.apache.uima.jcas.tcas.Annotation) FeatureStructure(org.apache.stanbol.commons.caslight.FeatureStructure) Type(org.apache.uima.cas.Type)

Aggregations

Annotation (org.apache.uima.jcas.tcas.Annotation)6 Type (org.apache.uima.cas.Type)4 TokenAnnotation (org.apache.uima.TokenAnnotation)3 Feature (org.apache.uima.cas.Feature)2 ArrayList (java.util.ArrayList)1 MapField (org.apache.solr.uima.processor.SolrUIMAConfiguration.MapField)1 DummySentimentAnnotation (org.apache.solr.uima.ts.DummySentimentAnnotation)1 EntityAnnotation (org.apache.solr.uima.ts.EntityAnnotation)1 Feature (org.apache.stanbol.commons.caslight.Feature)1 FeatureStructure (org.apache.stanbol.commons.caslight.FeatureStructure)1 FeatureStructure (org.apache.uima.cas.FeatureStructure)1 AnnotationFS (org.apache.uima.cas.text.AnnotationFS)1