blob: 79d7bbbc10d7cf0698626265e1740e5a11549379 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 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.core.sharedobject;
import java.util.Map;
import org.eclipse.ecf.core.identity.ID;
/**
* Configuration information provided to ISharedObject via its enclosing
* ISharedObjectContainer
*
* @see ISharedObject#init(ISharedObjectConfig)
*/
public interface ISharedObjectConfig {
/**
* Get the ID associated with this ISharedObject by its container.
* Containers must provide an implementation of this configuration that
* provides a non-null ID instance in response to this method call.
*
* @return ID that ISharedObject can use for imlementing its own
* ISharedObject.getID(). Will not be null.
*/
public ID getSharedObjectID();
/**
* Get the ID of the container that is the home of the primary copy of the
* ISharedObject instance.
*
* @return the ID of the container that is the home of the primary copy of
* the ISharedObject instance. Will not be null.
*/
public ID getHomeContainerID();
/**
* Get the ISharedObjectContext instance for this ISharedObject. The
* ISharedObjectContext provides access to container-provided services,
* including messaging to remote containers and to remote replicas of the
* ISharedObject, as well as access to OSGI-platform services.
*
* @return ISharedObjectContext for the ISharedObject to use to access
* container and associated services. <b>Will</b> return null if
* context is no longer valid.
*/
public ISharedObjectContext getContext();
/**
* Get properties associated with with this ISharedObject
*
* @return Map with properties associated with this ISharedObject instance.
* Will not be null.
*/
public Map getProperties();
}