public final class ECPProjectManagerImpl extends PropertiesStore<InternalProject,ECPObserver> implements ECPProjectManager, ECPRepositoriesChangedObserver
ECPProjects
.PropertiesStore.StorableElement
Constructor and Description |
---|
ECPProjectManagerImpl()
Should not be called directly, use service instead.
|
ECPProjectManagerImpl(String sessionId) |
Modifier and Type | Method and Description |
---|---|
void |
changeProject(ECPProject project,
boolean opened,
boolean store)
This is called by projects to notify observers if a project gets openes or closed.
|
ECPProject |
createProject(ECPProject project,
String name)
Method to construct a new Project based on an existing project as template.
|
ECPProject |
createProject(ECPProvider provider,
String name)
Method to construct an offline Project, this method calls
ECPProjectManager.createProject(ECPProvider, String, ECPProperties) with empty properties. |
ECPProject |
createProject(ECPProvider provider,
String name,
ECPProperties properties)
Method to construct an offline Project and notify listeners about this add.
|
ECPProject |
createProject(ECPRepository repository,
String name,
ECPProperties properties)
Method to construct an shared Project, e.g.
|
protected void |
doActivate() |
protected void |
doDeactivate() |
protected void |
elementsChanged(Collection<InternalProject> oldElements,
Collection<InternalProject> newElements) |
InternalProject |
getProject(Object adaptable)
Retrieves the project the adaptable belongs to if possible.
|
InternalProject |
getProject(String name)
Searches for a project based on the provided
String . |
Collection<ECPProject> |
getProjects()
Returns all known projects.
|
protected boolean |
isRemoveDisposedElements() |
protected InternalProject |
loadElement(ObjectInput in)
Loads an element.
|
void |
notifyObjectsChanged(ECPProject project,
Collection<Object> objects,
boolean structural)
This is called by projects to notify observers about object changes.
|
protected void |
notifyObservers(Collection<InternalProject> oldElements,
Collection<InternalProject> newElements)
Notifies observers that the elements in the registry have changed.
|
void |
repositoriesChanged(Collection<ECPRepository> oldRepositories,
Collection<ECPRepository> newRepositories)
This is called to indicate, that repositories changed.
|
void |
setECPObserverBus(ECPObserverBus ecpObserverBus)
Bindes the ECPObserverBus.
|
getFile, getFolder, isLoadableElement, load, setFolder, storeElement
addResolveListener, descriptorChanged, getElementName, removeResolveListener
addObserver, changeElements, disposed, doChangeElements, getElement, getElementCount, getElementNames, getElements, hasElement, hasElements, isDisposingElement, removeObserver
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
addListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, removeListener
public ECPProjectManagerImpl()
public ECPProjectManagerImpl(String sessionId)
sessionId
- Will be appended to the folder name so that there are different folders for each sessionpublic void setECPObserverBus(ECPObserverBus ecpObserverBus)
ecpObserverBus
- the buspublic ECPProject createProject(ECPProvider provider, String name) throws ECPProjectWithNameExistsException
ECPProjectManager.createProject(ECPProvider, String, ECPProperties)
with empty properties. If
ECPProvider.hasCreateProjectWithoutRepositorySupport()
returns
false an UnsupportedOperationException is thrown.createProject
in interface ECPProjectManager
provider
- the ECPProvider
of this projectname
- the name of the projectECPProject
ECPProjectWithNameExistsException
- when a project with the same name already existspublic ECPProject createProject(ECPProvider provider, String name, ECPProperties properties) throws ECPProjectWithNameExistsException
ECPProvider.hasCreateProjectWithoutRepositorySupport()
returns
false an UnsupportedOperationException is thrown.createProject
in interface ECPProjectManager
provider
- the ECPProvider
of this projectname
- the name of the projectproperties
- the project propertiesECPProject
ECPProjectWithNameExistsException
- when a project with the same name already existspublic ECPProject createProject(ECPRepository repository, String name, ECPProperties properties) throws ECPProjectWithNameExistsException
createProject
in interface ECPProjectManager
repository
- the ECPRepository
of this projectname
- the name of the projectproperties
- the project propertiesECPProject
ECPProjectWithNameExistsException
- when a project with the same name already existspublic ECPProject createProject(ECPProject project, String name)
createProject
in interface ECPProjectManager
project
- the template ECPProject
name
- the name of the created projectECPProject
public InternalProject getProject(Object adaptable)
ECPProjectAware
and else uses the AdapterUtil to adapt to a
project.getProject
in interface ECPProjectManager
adaptable
- the Object to adaptECPProject
public InternalProject getProject(String name)
String
.getProject
in interface ECPProjectManager
name
- of the project to search forECPProject
public Collection<ECPProject> getProjects()
getProjects
in interface ECPProjectManager
public void changeProject(ECPProject project, boolean opened, boolean store)
project
- the project that called this methodopened
- whether the project is openstore
- whether to store the changepublic void notifyObjectsChanged(ECPProject project, Collection<Object> objects, boolean structural)
IECPProjectObjectsChangedObservers
are notified then the
IECPProjectsChangedUIObservers
.project
- the project that called this methodobjects
- the objects that changedstructural
- whether the changes where structuralpublic void repositoriesChanged(Collection<ECPRepository> oldRepositories, Collection<ECPRepository> newRepositories)
repositoriesChanged
in interface ECPRepositoriesChangedObserver
oldRepositories
- repositories before changenewRepositories
- repositories after changeprotected void elementsChanged(Collection<InternalProject> oldElements, Collection<InternalProject> newElements)
elementsChanged
in class PropertiesStore<InternalProject,ECPObserver>
protected void doActivate() throws Exception
doActivate
in class PropertiesStore<InternalProject,ECPObserver>
Exception
protected void doDeactivate() throws Exception
doDeactivate
in class org.eclipse.net4j.util.lifecycle.Lifecycle
Exception
protected InternalProject loadElement(ObjectInput in) throws IOException
PropertiesStore
loadElement
in class PropertiesStore<InternalProject,ECPObserver>
in
- an ObjectInput
to load the element fromIOException
- if the element cannot be loaded correctlyprotected void notifyObservers(Collection<InternalProject> oldElements, Collection<InternalProject> newElements) throws Exception
Registry
notifyObservers
in class Registry<InternalProject,ECPObserver>
oldElements
- The old collection of elementsnewElements
- The new collection of elementsException
protected boolean isRemoveDisposedElements()
isRemoveDisposedElements
in class Registry<InternalProject,ECPObserver>
Copyright © 2019. All rights reserved.