/******************************************************************************* * Copyright (c) 2000, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.core.filebuffers; import org.eclipse.core.runtime.IStatus; /** * Implementers of {@link org.eclipse.core.filebuffers.IFileBuffer} may also * implement <code>IStateValidationSupport</code> in order to allow a * {@link org.eclipse.core.filebuffers.IFileBufferManager} to batch the stages * of state validation when calling * {@link org.eclipse.core.filebuffers.IFileBufferManager#validateState(IFileBuffer[], org.eclipse.core.runtime.IProgressMonitor, Object)}. * * @see org.eclipse.core.filebuffers.IFileBuffer * @since 3.1 */ public interface IStateValidationSupport { /** * Tells this buffer that the validation state is about to be changed. File * buffer listeners will receive a * {@link IFileBufferListener#stateChanging(IFileBuffer)} notification in * response. */ void validationStateAboutToBeChanged(); /** * Tells this buffer that the validation state has been changed to the given * value. After that call, {@link IFileBuffer#isStateValidated()} will * return the given value. Also {@link IFileBuffer#getStatus()} will returns * the provided status. File buffer listeners will receive a * {@link IFileBufferListener#stateValidationChanged(IFileBuffer, boolean)} * notification. * * @param validationState <code>true</code> if validated, * <code>false</code> otherwise * @param status the status of the executed validate state operation */ void validationStateChanged(boolean validationState, IStatus status); /** * Tells this buffer that a initiated state validation failed. File buffer * listeners will receive a * {@link IFileBufferListener#stateChangeFailed(IFileBuffer)} notification * in response. */ void validationStateChangeFailed(); }