Example usage for org.eclipse.jdt.internal.core Openable closeBuffer

List of usage examples for org.eclipse.jdt.internal.core Openable closeBuffer

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core Openable closeBuffer.

Prototype

protected void closeBuffer() 

Source Link

Document

Close the buffer associated with this element, if any.

Usage

From source file:com.codenvy.ide.ext.java.server.internal.core.JavaElement.java

License:Open Source License

protected Object openWhenClosed(Object info, boolean forceAdd, IProgressMonitor monitor)
        throws JavaModelException {
    //      JavaModelManager manager = JavaModelManager.getJavaModelManager();
    boolean hadTemporaryCache = manager.hasTemporaryCache();
    try {/*from www . j a v a  2s  .  com*/
        HashMap newElements = manager.getTemporaryCache();
        generateInfos(info, newElements, monitor);
        if (info == null) {
            info = newElements.get(this);
        }
        if (info == null) { // a source ref element could not be opened
            // close the buffer that was opened for the openable parent
            // close only the openable's buffer (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=62854)
            Openable openable = (Openable) getOpenable();
            if (newElements.containsKey(openable)) {
                openable.closeBuffer();
            }
            throw newNotPresentException();
        }
        if (!hadTemporaryCache) {
            info = manager.putInfos(this, info, forceAdd, newElements);
        }
    } finally {
        if (!hadTemporaryCache) {
            manager.resetTemporaryCache();
        }
    }
    return info;
}