blob: f7b603e9cfc09bdfacb27dea40859e874787cf75 [file] [log] [blame]
/****************************************************************************
* Copyright (c) 2008 Composent, Inc. 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:
* Composent, Inc. - initial API and implementation
*****************************************************************************/
package org.eclipse.ecf.storage;
import org.eclipse.ecf.core.ContainerCreateException;
import org.eclipse.ecf.core.IContainer;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.identity.IDCreateException;
import org.eclipse.equinox.security.storage.ISecurePreferences;
import org.eclipse.equinox.security.storage.StorageException;
/**
* Storage entry for IContainer instances.
*/
public interface IContainerEntry {
/**
* Get the underlying {@link ISecurePreferences} node that represents this IContainerEntry
* in the storage.
*
* @return {@link ISecurePreferences} that represents this IContainerEntry in the underlying storage. Will
* not return <code>null</code>.
*/
public ISecurePreferences getPreferences();
/**
* Get the container's ID for the stored {@link IContainer}. The returned ID will be equivalent to
* the ID returned by the original container's {@link IContainer#getID()}.
*
* @return ID for the container. Will not be <code>null</code>.
* @throws IDCreateException if ID cannot be created.
*/
public ID getContainerID() throws IDCreateException;
/**
* Get the container factory name for the stored {@link IContainer}.
* @return String the container factory name. Will not be <code>null</code>.
* @throws StorageException if some exception reading from {@link ISecurePreferences}.
*/
public String getFactoryName() throws StorageException;
/**
* Create an IContainer from this IContainerEntry. This method may be used to create new IContainer instance from this
* {@link IContainerEntry}. The created IContainer will be equivalent (via ID.equals(other)) to the ID previously
* stored via {@link IContainerStore#store(IStorableContainerAdapter)}.
*
* @return {@link IContainer} that corresponds to this previously stored {@link IContainerEntry}.
* @throws ContainerCreateException if the IContainer cannot be created in this environment.
*/
public IContainer createContainer() throws ContainerCreateException;
/**
* Delete this IContainerEntry from the {@link IContainerStore}.
*/
public void delete();
}