org.eclipse.corona.container.manager.manage
Class ProjectContainerManager

java.lang.Object
  extended by org.eclipse.corona.container.manager.manage.ContainerManager
      extended by org.eclipse.corona.container.manager.manage.ProjectContainerManager
All Implemented Interfaces:
IContainerManager, IProjectContainerManager, IContainerHome, IManagedContainerHome, org.osgi.framework.ServiceFactory

public class ProjectContainerManager
extends ContainerManager
implements IContainerHome, org.osgi.framework.ServiceFactory, IProjectContainerManager


Field Summary
(package private)  java.util.Map projectContainerNameToActiveTeamMemberList
           
static java.lang.String TEAM_MEMBER_REPOSITORY_NAME
           
 
Fields inherited from class org.eclipse.corona.container.manager.manage.ContainerManager
bundleContext, containerNameToContainerUri, containerUriToContainerName, openContainerMap, uriToRefCountMap
 
Constructor Summary
ProjectContainerManager(org.osgi.framework.BundleContext bundleContext)
           
 
Method Summary
 void addTeamMemberInRepository(IRepositoryResource memberObject, RepositoryDescriptor repositoryDescriptor)
           
 void close()
          Close the ContainerManager.
 void closeProjectContainerForMember(java.lang.String containerUri, java.lang.String memberId)
          Close an existing project container on behalf of a project team member.
 java.lang.String getHomeIdentifier()
          return the uri of the ContainerManager, Container manager is a singleton
 IProjectEventFactory getProjectEventFactory()
          Get the ProjectEventFactory (service)
 void joinProject(java.lang.String containerUri, IRepositoryResource memberObject)
          Add a member to the ProjectContextContainer's Team Member Repository.
 java.util.List listActiveMembers(java.lang.String containerUri)
          Returns a List of Strings containing Team Member names that currently have this ProjectContextContainer open.
 ProjectContextContainer loadContainer(java.lang.String containerUri)
           
 ProjectContextContainer loadContainer(java.lang.String containerUri, IContainerConfiguration config)
           
 ProjectContextContainer openProjectContainerForMember(java.lang.String containerUri, java.lang.String memberId)
          Opens an existing project container on behalf of a project team member.
 void refresh()
          Method refreshs the manager context.
 void removeTeamMemberInRepository(RepositoryDescriptor repositoryDescriptor, java.lang.String memberId)
           
 java.lang.Object resolveContainer(java.lang.String containerUri, IContainerConfiguration config)
          Finds an existing Container if none exists with specified containerUri a new one is created.
 void unjoinProject(java.lang.String containerUri, java.lang.String memberId)
          remove a member from the ProjectContextContainer's Team Member Repository
 
Methods inherited from class org.eclipse.corona.container.manager.manage.ContainerManager
addRelatedContainerUri, closeContainer, configure, containerToXML, dumpFile, getContainer, getNameToContainerUriMap, getPropertyConfigurationStore, getService, getUriToContainerNameMap, initContainerNameToContainerUriAndContainerUriToContainerNameMaps, listAllRelatedContainerUris, listAllRelatedContainerUris, listContainerUris, listOpenContainers, listOpenContainersWithRepository, listRelatedContainerNames, listRelatedContainerUris, listRelatedContainerUris, loadConfiguration, openContainer, removeRelatedContainerUri, saveContainer, sendCollaborationEvent, ungetService, updateContainerName, updateContainerUri
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.osgi.framework.ServiceFactory
getService, ungetService
 
Methods inherited from interface org.eclipse.corona.container.manager.IContainerManager
addRelatedContainerUri, closeContainer, configure, getNameToContainerUriMap, getService, getUriToContainerNameMap, listAllRelatedContainerUris, listAllRelatedContainerUris, listContainerUris, listOpenContainers, listOpenContainersWithRepository, listRelatedContainerUris, listRelatedContainerUris, loadConfiguration, openContainer, removeRelatedContainerUri, saveContainer, ungetService
 

Field Detail

TEAM_MEMBER_REPOSITORY_NAME

public static final java.lang.String TEAM_MEMBER_REPOSITORY_NAME
See Also:
Constant Field Values

projectContainerNameToActiveTeamMemberList

java.util.Map projectContainerNameToActiveTeamMemberList
Constructor Detail

ProjectContainerManager

public ProjectContainerManager(org.osgi.framework.BundleContext bundleContext)
Method Detail

close

public void close()
Description copied from interface: IContainerManager
Close the ContainerManager. This method is called when the container manager is being closed and no longer needed. It provides the opportunity for the container manager to clean-up and close its resources.

Specified by:
close in interface IContainerManager
Overrides:
close in class ContainerManager
See Also:
IContainerManager.close()

getHomeIdentifier

public java.lang.String getHomeIdentifier()
Description copied from interface: IContainerManager
return the uri of the ContainerManager, Container manager is a singleton

Specified by:
getHomeIdentifier in interface IContainerManager
Specified by:
getHomeIdentifier in interface IManagedContainerHome
Overrides:
getHomeIdentifier in class ContainerManager
Returns:
uri of the ContainerManager

resolveContainer

public java.lang.Object resolveContainer(java.lang.String containerUri,
                                         IContainerConfiguration config)
Description copied from interface: IContainerManager
Finds an existing Container if none exists with specified containerUri a new one is created. If containerConfig is is null a new containerConfig is created and written

Specified by:
resolveContainer in interface IContainerManager
Specified by:
resolveContainer in interface IManagedContainerHome
Overrides:
resolveContainer in class ContainerManager
Parameters:
containerUri - uri used to uniquely identify the ContextContainer
config - the configuration object for this this type of Container

openProjectContainerForMember

public ProjectContextContainer openProjectContainerForMember(java.lang.String containerUri,
                                                             java.lang.String memberId)
                                                      throws NoTeamRepositoryException
Description copied from interface: IProjectContainerManager
Opens an existing project container on behalf of a project team member. The team member should have already joined the project

Specified by:
openProjectContainerForMember in interface IProjectContainerManager
Parameters:
containerUri - uri identifying the ProjectContextContainer
memberId - the unique memberId for a TeamMember in the TeamMember Repository
Returns:
ProjectContextContainer object
Throws:
NoTeamRepositoryException
See Also:
An event is sent to notify others using the ProjectContextContainer that this member has the ProjectContextContainer opened

closeProjectContainerForMember

public void closeProjectContainerForMember(java.lang.String containerUri,
                                           java.lang.String memberId)
Description copied from interface: IProjectContainerManager
Close an existing project container on behalf of a project team member. The team member should have already joined the project

Specified by:
closeProjectContainerForMember in interface IProjectContainerManager
See Also:
An event is sent to notify others using the ProjectContextContainer that this member has closed the ProjectContextContainer.

listActiveMembers

public java.util.List listActiveMembers(java.lang.String containerUri)
Description copied from interface: IProjectContainerManager
Returns a List of Strings containing Team Member names that currently have this ProjectContextContainer open.

Specified by:
listActiveMembers in interface IProjectContainerManager
Parameters:
containerUri - uri of container to check for active Team Members
Returns:
list of Strings containing Team Member names

joinProject

public void joinProject(java.lang.String containerUri,
                        IRepositoryResource memberObject)
Description copied from interface: IProjectContainerManager
Add a member to the ProjectContextContainer's Team Member Repository. The member is not active until member opens the ProjectContextContainerForMember

Specified by:
joinProject in interface IProjectContainerManager
memberObject - Team member object to add to the Team Member Repository the repository must know how to handle this type of object
See Also:
org.eclipse.corona.container.project.manage.IProjectContainerManager#openProjectContainerForMember(String, String)

addTeamMemberInRepository

public void addTeamMemberInRepository(IRepositoryResource memberObject,
                                      RepositoryDescriptor repositoryDescriptor)

unjoinProject

public void unjoinProject(java.lang.String containerUri,
                          java.lang.String memberId)
Description copied from interface: IProjectContainerManager
remove a member from the ProjectContextContainer's Team Member Repository

Specified by:
unjoinProject in interface IProjectContainerManager
Parameters:
containerUri - uri of PrjectContextContainer holding Team Member Repository to remove the Team Member from from
memberId - the unique Team member Id to remove from the Team Member Repository

removeTeamMemberInRepository

public void removeTeamMemberInRepository(RepositoryDescriptor repositoryDescriptor,
                                         java.lang.String memberId)

loadContainer

public ProjectContextContainer loadContainer(java.lang.String containerUri)
Overrides:
loadContainer in class ContainerManager

loadContainer

public ProjectContextContainer loadContainer(java.lang.String containerUri,
                                             IContainerConfiguration config)
Overrides:
loadContainer in class ContainerManager

getProjectEventFactory

public IProjectEventFactory getProjectEventFactory()
Get the ProjectEventFactory (service)

Returns:

refresh

public void refresh()
Method refreshs the manager context. Usually called when corona configuration directory changes.

Specified by:
refresh in interface IProjectContainerManager

Copyright 2006 IBM Corporation and others.
All Rights Reserved.