| /******************************************************************************* |
| * 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.ui; |
| |
| |
| /** |
| * Interface for asking an object to store its state in a memento. |
| * <p> |
| * This interface is typically included in interfaces where |
| * persistance is required. |
| * </p><p> |
| * When the workbench is shutdown objects which implement this interface |
| * will be persisted. At this time the <code>getFactoryId</code> method |
| * is invoked to discover the id of the element factory that will be used |
| * to re-create the object from a memento. Then the <code>saveState</code> |
| * method is invoked to store the element data into a newly created memento. |
| * The resulting mementos are collected up and written out to a single file. |
| * </p> |
| * <p> |
| * During workbench startup these mementos are read from the file. The |
| * factory Id for each is retrieved and mapped to an <code>IElementFactory</code> |
| * which has been registered in the element factory extension point. If a |
| * factory exists for the Id it will be engaged to re-create the original |
| * object. |
| * </p> |
| * |
| * @see org.eclipse.core.runtime.IAdaptable |
| * @see org.eclipse.ui.IMemento |
| * @see org.eclipse.ui.IElementFactory |
| */ |
| public interface IPersistableElement extends IPersistable { |
| /** |
| * Returns the id of the element factory which should be used to re-create this |
| * object. |
| * <p> |
| * Factory ids are declared in extensions to the standard extension point |
| * <code>"org.eclipse.ui.elementFactories"</code>. |
| * </p> |
| * |
| * @return the element factory id |
| * @see IElementFactory |
| */ |
| public String getFactoryId(); |
| } |