/*******************************************************************************
* Copyright (c) 2009 QNX Software Systems 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:
* QNX Software Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.ui.workingsets;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPersistable;
/**
* The protocol for elements of the working-set configuration model, which can be persisted via
* {@linkplain IMemento mementos}.
*
* @author Christian W. Damus (cdamus)
*
* @since 6.0
*
*/
public interface IWorkingSetConfigurationElement extends IPersistable {
/**
* Loads me from the specified memento.
*
* @param memento
* a memento in which I am persisted
*/
void loadState(IMemento memento);
//
// Nested types
//
/**
* The protocol for mutable working-copies ("snapshots") of working set configuration model elements.
*
* @author Christian W. Damus (cdamus)
*
* @since 6.0
*
* @see WorkspaceSnapshot
*/
interface ISnapshot {
/**
* Obtains the workspace snapshot that describes the baseline state of the working-set configuration
* editing session of which I am a part.
*
* @return my base workspace snapshot
*/
WorkspaceSnapshot getWorkspaceSnapshot();
}
}