static public CAS deserializeXcas_NOT_USED()

in CasViewerEclipsePlugin/uimaj-ep-casviewer-core/src/main/java/org/apache/uima/casviewer/core/internal/casreader/XcasReader.java [33:129]


    static public CAS deserializeXcas_NOT_USED (String xmlDescriptor, String xmlXcas,
                                String typePrioritiesFileName)
    {
//        File descriptorFile = new File(xmlDescriptor);
        
        // Parse descriptor and create TCas and StyleMap
        Object descriptor;
        try {
            // Create new CAS with the type system from input descriptor.
            // Also build style map file if there is none.
            descriptor = UIMAFramework.getXMLParser().parse(new XMLInputSource(xmlDescriptor));
            
            TypePriorities  typePriorities = null;
            if (typePrioritiesFileName != null) {
                XMLInputSource in = new XMLInputSource(new File(typePrioritiesFileName));
                Object xmlLizable = UIMAFramework.getXMLParser().parse(in);
                if (xmlLizable != null && (xmlLizable instanceof TypePriorities)) {
                    typePriorities = (TypePriorities) xmlLizable;
                }
            }
            CAS tcas;
            // File styleMapFile;
            if (descriptor instanceof AnalysisEngineDescription) {
                tcas = CasCreationUtils.createCas((AnalysisEngineDescription)descriptor);
                // styleMapFile = getStyleMapFile((AnalysisEngineDescription)descriptor, descriptorFile.getPath());
                
            } else if (descriptor instanceof TypeSystemDescription) {
                TypeSystemDescription typeSystemDescription = (TypeSystemDescription)descriptor;
                typeSystemDescription.resolveImports();
                tcas = CasCreationUtils.createCas(typeSystemDescription, typePriorities, new FsIndexDescription[0]);
                // styleMapFile = getStyleMapFile((TypeSystemDescription)descriptor, descriptorFile.getPath());        
            } else {
//                displayError("Invalid Descriptor File \"" + descriptorFile.getPath() + "\"" +
//                "Must be either an AnalysisEngine or TypeSystem descriptor.");
                return null;
            }                    
            
            // Create a new CAS     
            if (typePriorities != null) {
                Trace.err("Used TypePriorities");
            } else {
                Trace.err("NO TypePriorities");
            }
            CAS cas = CasCreationUtils.createCas(tcas.getTypeSystem(), 
                    typePriorities, new FsIndexDescription[0],
                    UIMAFramework.getDefaultPerformanceTuningProperties());
            
            // Deserialize XCAS or XMI into CAS
            File xcasFile = new File(xmlXcas);
            
            // For Apache-UIMA
            FileInputStream xcasInStream = null;
            try {
                xcasInStream = new FileInputStream(xcasFile);
                XmlCasDeserializer.deserialize(xcasInStream, cas, true);
            } finally {
                if (xcasInStream != null)
                    xcasInStream.close();
            }

            // For UIMA 1.4
//            XCASDeserializer deser = new XCASDeserializer(cas.getTypeSystem());
//            ContentHandler deserHandler = deser.getXCASHandler(cas, new OutOfTypeSystemData());
//            SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
//            XMLReader xmlReader = parser.getXMLReader();
//            xmlReader.setContentHandler(deserHandler);
//            FileInputStream xcasInStream = null;
//            try {
//                xcasInStream = new FileInputStream(xcasFile);
//                xmlReader.parse(new InputSource(xcasInStream));
//            } finally {
//                if (xcasInStream != null)
//                    xcasInStream.close();     
//            }
            
            FSIterator it = cas.getSofaIterator();
            SofaFS sf = null;
            int i=0;
            while (it.hasNext()) {
                SofaFS sofa = (SofaFS) it.next();
                if (++i == 2) sf = sofa;
                Trace.trace("sofa " + sofa.getSofaRef() );
            }
            return cas.getCurrentView();
        } catch (InvalidXMLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ResourceInitializationException e) {
            e.printStackTrace();
//        } catch (ParserConfigurationException e) {
//            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        }     
        return null;
    } // deserializeXcas