List of usage examples for org.eclipse.jdt.core IBuffer getOwner
public IOpenable getOwner();
From source file:com.codenvy.ide.ext.java.server.internal.core.BufferCache.java
License:Open Source License
/** * Returns true if the buffer is successfully closed and * removed from the cache, otherwise false. * * <p>NOTE: this triggers an external removal of this buffer * by closing the buffer.// w ww .j a v a 2 s. c o m */ protected boolean close(LRUCacheEntry entry) { IBuffer buffer = (IBuffer) entry.value; // prevent buffer that have unsaved changes or working copy buffer to be removed // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=39311 if (!((Openable) buffer.getOwner()).canBufferBeRemovedFromCache(buffer)) { return false; } else { ArrayList buffers = (ArrayList) this.buffersToClose.get(); if (buffers == null) { buffers = new ArrayList(); this.buffersToClose.set(buffers); } buffers.add(buffer); return true; } }
From source file:com.codenvy.ide.ext.java.server.internal.core.BufferManager.java
License:Open Source License
/** * Adds a buffer to the table of open buffers. *//*w w w .j av a 2s . co m*/ protected void addBuffer(IBuffer buffer) { if (VERBOSE) { String owner = ((Openable) buffer.getOwner()).toStringWithAncestors(); System.out.println("Adding buffer for " + owner); //$NON-NLS-1$ } synchronized (this.openBuffers) { this.openBuffers.put(buffer.getOwner(), buffer); } // close buffers that were removed from the cache if space was needed this.openBuffers.closeBuffers(); if (VERBOSE) { System.out.println("-> Buffer cache filling ratio = " + NumberFormat.getInstance().format(this.openBuffers.fillingRatio()) + "%"); //$NON-NLS-1$//$NON-NLS-2$ } }
From source file:com.codenvy.ide.ext.java.server.internal.core.BufferManager.java
License:Open Source License
/** * Removes a buffer from the table of open buffers. *///from w w w . ja v a 2s. c om protected void removeBuffer(IBuffer buffer) { if (VERBOSE) { String owner = ((Openable) buffer.getOwner()).toStringWithAncestors(); System.out.println("Removing buffer for " + owner); //$NON-NLS-1$ } synchronized (this.openBuffers) { this.openBuffers.remove(buffer.getOwner()); } // close buffers that were removed from the cache (should be only one) this.openBuffers.closeBuffers(); if (VERBOSE) { System.out.println("-> Buffer cache filling ratio = " //$NON-NLS-1$ + NumberFormat.getInstance().format(this.openBuffers.fillingRatio()) + "%"); //$NON-NLS-1$ } }
From source file:org.eclipse.che.jdt.internal.core.Openable.java
License:Open Source License
/** * @see IOpenable/*from w w w . java 2s .c om*/ */ public boolean hasUnsavedChanges() throws JavaModelException { if (isReadOnly() || !isOpen()) { return false; } IBuffer buf = getBuffer(); if (buf != null && buf.hasUnsavedChanges()) { return true; } // for package fragments, package fragment roots, and projects must check open buffers // to see if they have an child with unsaved changes int elementType = getElementType(); if (elementType == PACKAGE_FRAGMENT || elementType == PACKAGE_FRAGMENT_ROOT || elementType == JAVA_PROJECT || elementType == JAVA_MODEL) { // fix for 1FWNMHH Enumeration openBuffers = getBufferManager().getOpenBuffers(); while (openBuffers.hasMoreElements()) { IBuffer buffer = (IBuffer) openBuffers.nextElement(); if (buffer.hasUnsavedChanges()) { IJavaElement owner = (IJavaElement) buffer.getOwner(); if (isAncestorOf(owner)) { return true; } } } } return false; }