/*******************************************************************************
 * Copyright (c) 2006 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.ui;

/**
 * An editor can implement this interface and participate in the workbench
 * session save/restore cycle using <code>IMemento</code>, similar to how
 * <code>IViewPart</code> currently works.
 * <p>
 * Refer to IWorkbenchPart for the part lifecycle.
 * </p>
 * <p>
 * If a memento is available, restoreState(*) will be inserted into the editor
 * startup.
 * <ol>
 * <li><code>editor.init(site, input)</code></li>
 * <li><code>editor.restoreState(memento)</code></li>
 * <li><code>editor.createPartControl(parent)</code></li>
 * <li>...</li>
 * </ol>
 * </p>
 * <p>
 * On workbench shutdown, the editor state will be persisted when the editor
 * references are saved.
 * </p>
 * 
 * @since 1.0
 */
public interface IPersistableEditor extends IPersistable {
	/**
	 * Called with a memento for this editor. The editor can parse the data or
	 * save the memento. This method may not be called.
	 * 
	 * @param memento
	 *            the saved state for this editor. May be <code>null</code>.
	 */
	public void restoreState(IMemento memento);
}
