Copyright (c) 2000, 2007 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2007 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.core.internal.filebuffers; import org.eclipse.core.filesystem.IFileInfo; import org.eclipse.core.filesystem.IFileStore; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.filebuffers.IFileBuffer; import org.eclipse.core.filebuffers.IStateValidationSupport; import org.eclipse.jface.text.IDocumentExtension4;
Since:3.0
/** * @since 3.0 */
public abstract class AbstractFileBuffer implements IFileBuffer, IStateValidationSupport {
The element for which the info is stored.
Since:3.3
/** * The element for which the info is stored. * @since 3.3 */
protected IFileStore fFileStore;
The text file buffer manager.
Since:3.4 (pulled up from subclasses)
/** * The text file buffer manager. * @since 3.4 (pulled up from subclasses) */
final protected TextFileBufferManager fManager; public AbstractFileBuffer(TextFileBufferManager manager) { fManager= manager; } public abstract void create(IPath location, IProgressMonitor monitor) throws CoreException; public abstract void connect(); public abstract void disconnect() throws CoreException;
Returns whether this file buffer has been disconnected.
Returns:true if already disposed, false otherwise
Since:3.1
/** * Returns whether this file buffer has been disconnected. * * @return <code>true</code> if already disposed, <code>false</code> otherwise * @since 3.1 */
protected abstract boolean isDisconnected();
Disposes this file buffer. This implementation is always empty.

Subclasses may extend but must call super.dispose().

Since:3.1
/** * Disposes this file buffer. * This implementation is always empty. * <p> * Subclasses may extend but must call <code>super.dispose()</code>. * <p> * * @since 3.1 */
protected void dispose() { // do nothing } @Override public void validationStateAboutToBeChanged() { fManager.fireStateChanging(this); } @Override public void validationStateChangeFailed() { fManager.fireStateChangeFailed(this); } @Override public long getModificationStamp() { IFileInfo info= fFileStore.fetchInfo(); return info.exists() ? info.getLastModified() : IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP; } @Override public IFileStore getFileStore() { return fFileStore; } }