blob: a92d6a03ba73e5e8b432b11e4018258ff71d7c38 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 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.presentations;
/**
* This interface is given to a StackPresentation when it is loading or saving
* its state.
*
* Not intended to be implemented by clients
*
* @since 3.0
*/
public interface IPresentationSerializer {
/**
* Returns a unique identifier for the given part. The identifier can later
* be used to restore the original part by calling getPart(...). This identifier
* is guaranteed to be unique within a particular StackPresentation. However,
* the same part may be assigned a different ID each time the presentation is saved.
*
* @param part a part to be identified (not null)
* @return a unique identifier for the part (not null)
*/
public String getId(IPresentablePart part);
/**
* Returns a presentable part, given an id that was generated when the presentation
* was saved.
*
* @param id an ID that was generated by getId(IPresentablePart) when the presentation
* was saved
* @return the presentable part associated with the given id, or null if none. Note
* that even if the ID was valid when the presentation was saved, it may not
* be valid when the presentation is restored. Callers must be prepared
* to handle a null result.
*/
public IPresentablePart getPart(String id);
}