Search in sources :

Example 6 with FeatureStructure

use of org.apache.stanbol.commons.caslight.FeatureStructure 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

FeatureStructure (org.apache.stanbol.commons.caslight.FeatureStructure)6 IOException (java.io.IOException)3 IRI (org.apache.clerezza.commons.rdf.IRI)3 Feature (org.apache.stanbol.commons.caslight.Feature)3 FeatureStructureListHolder (org.apache.stanbol.commons.caslight.FeatureStructureListHolder)3 NoSuchPartException (org.apache.stanbol.enhancer.servicesapi.NoSuchPartException)3 Blob (org.apache.stanbol.enhancer.servicesapi.Blob)2 InvalidContentException (org.apache.stanbol.enhancer.servicesapi.InvalidContentException)2 BufferedReader (java.io.BufferedReader)1 InputStreamReader (java.io.InputStreamReader)1 OutputStreamWriter (java.io.OutputStreamWriter)1 URL (java.net.URL)1 URLConnection (java.net.URLConnection)1 ArrayList (java.util.ArrayList)1 Graph (org.apache.clerezza.commons.rdf.Graph)1 PlainLiteralImpl (org.apache.clerezza.commons.rdf.impl.utils.PlainLiteralImpl)1 TripleImpl (org.apache.clerezza.commons.rdf.impl.utils.TripleImpl)1 LiteralFactory (org.apache.clerezza.rdf.core.LiteralFactory)1 UIMASimpleServletClient (org.apache.stanbol.enhancer.engines.uimaremote.tools.UIMASimpleServletClient)1 EngineException (org.apache.stanbol.enhancer.servicesapi.EngineException)1