Search in sources :

Example 41 with IModelHandler

use of org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler in project webtools.sourceediting by eclipse.

the class XMLJSPRegionHelper method parse.

/*
	 * parse an entire file
	 * 
	 * @param filename @return
	 */
public boolean parse(String filePathString) {
    boolean parsed = false;
    IStructuredDocument document = null;
    String contents = null;
    IPath filePath = new Path(filePathString);
    IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
    if (f == null || !f.isAccessible()) {
        f = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(filePath);
    }
    if (f != null && f.isAccessible()) {
        /*
			 * using a real document allows us to pull out text in the
			 * translator for dealing with TEI variables
			 */
        try {
            IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerFor(f, false);
            if (handler == null)
                handler = ModelHandlerRegistry.getInstance().getHandlerForContentTypeId(ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT);
            document = (IStructuredDocument) handler.getDocumentLoader().createNewStructuredDocument();
            contents = FileContentCache.getInstance().getContents(f.getFullPath());
        } catch (CoreException e) {
            Logger.logException(e);
        }
    }
    if (contents != null && document != null) {
        // from outer class
        List blockMarkers = this.fTranslator.getBlockMarkers();
        // to this parser so parsing works correctly
        for (int i = 0; i < blockMarkers.size(); i++) {
            addBlockMarker((BlockMarker) blockMarkers.get(i));
        }
        reset(contents);
        // forces parse
        document.set(contents);
        IStructuredDocumentRegion cursor = document.getFirstStructuredDocumentRegion();
        while (cursor != null) {
            nodeParsed(cursor);
            cursor = cursor.getNext();
        }
        parsed = true;
    }
    return parsed;
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) IStructuredDocumentRegion(org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion) IFile(org.eclipse.core.resources.IFile) IPath(org.eclipse.core.runtime.IPath) CoreException(org.eclipse.core.runtime.CoreException) IStructuredDocument(org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument) ITextRegionList(org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList) List(java.util.List) IModelHandler(org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler)

Aggregations

IModelHandler (org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler)41 ModelHandlerRegistry (org.eclipse.wst.sse.core.internal.modelhandler.ModelHandlerRegistry)14 IStructuredModel (org.eclipse.wst.sse.core.internal.provisional.IStructuredModel)9 CoreException (org.eclipse.core.runtime.CoreException)6 IStructuredDocument (org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument)6 IContentType (org.eclipse.core.runtime.content.IContentType)5 IModelLoader (org.eclipse.wst.sse.core.internal.provisional.IModelLoader)5 InputStream (java.io.InputStream)4 IFile (org.eclipse.core.resources.IFile)4 IDocumentLoader (org.eclipse.wst.sse.core.internal.document.IDocumentLoader)4 ResourceInUse (org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse)4 IOException (java.io.IOException)3 IProject (org.eclipse.core.resources.IProject)3 BasicStructuredDocument (org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument)3 URIResolver (org.eclipse.wst.sse.core.internal.util.URIResolver)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 FileNotFoundException (java.io.FileNotFoundException)2 IConfigurationElement (org.eclipse.core.runtime.IConfigurationElement)2 IDocument (org.eclipse.jface.text.IDocument)2 IStructuredDocumentRegion (org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion)2