Class ECPRepositoryManagerImpl
- java.lang.Object
-
- org.eclipse.net4j.util.event.Notifier
-
- org.eclipse.net4j.util.lifecycle.Lifecycle
-
- org.eclipse.emf.ecp.internal.core.util.Registry<ELEMENT,OBSERVER>
-
- org.eclipse.emf.ecp.internal.core.util.ElementRegistry<ELEMENT,OBSERVER>
-
- org.eclipse.emf.ecp.internal.core.util.PropertiesStore<InternalRepository,ECPObserver>
-
- org.eclipse.emf.ecp.internal.core.ECPRepositoryManagerImpl
-
- All Implemented Interfaces:
ECPRepositoryManager
,ECPObserver
,ECPProvidersChangedObserver
,ECPDisposable.DisposeListener
,org.eclipse.net4j.util.event.INotifier
,org.eclipse.net4j.util.event.INotifier.INotifier2
,org.eclipse.net4j.util.lifecycle.IDeactivateable
,org.eclipse.net4j.util.lifecycle.ILifecycle
,org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
public final class ECPRepositoryManagerImpl extends PropertiesStore<InternalRepository,ECPObserver> implements ECPRepositoryManager, ECPProvidersChangedObserver
This class manages the repositories.- Author:
- Eike Stepper, Eugen Neufeld
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.emf.ecp.internal.core.util.PropertiesStore
PropertiesStore.StorableElement
-
-
Constructor Summary
Constructors Constructor Description ECPRepositoryManagerImpl()
Should not be called directly, use service instead.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ECPRepository
addRepository(ECPProvider provider, java.lang.String name, java.lang.String label, java.lang.String description, ECPProperties properties)
This method allows the user to create a repository.protected void
doActivate()
protected void
doDeactivate()
protected java.io.File
getFile(InternalRepository element)
java.util.Collection<ECPRepository>
getRepositories()
Returns all known repositories.InternalRepository
getRepository(java.lang.Object adaptable)
This method returns aECPRepository
from an adaptable.InternalRepository
getRepository(java.lang.String name)
This method returns a repository by its name.boolean
hasRepositories()
Checks whether any repositories are available.protected boolean
isLoadableElement(java.io.File file)
protected InternalRepository
loadElement(java.io.ObjectInput in)
Loads an element.void
notifyObjectsChanged(ECPRepository repository, java.util.Collection<java.lang.Object> objects)
This is called by theECPRepository
to notificate observers about chnages it its objects.protected void
notifyObservers(java.util.Collection<InternalRepository> oldRepositories, java.util.Collection<InternalRepository> newRepositories)
Notifies observers that the elements in the registry have changed.void
providersChanged(java.util.Collection<ECPProvider> oldProviders, java.util.Collection<ECPProvider> newProviders)
This is called to indicate, that providers changed.-
Methods inherited from class org.eclipse.emf.ecp.internal.core.util.PropertiesStore
elementsChanged, getFolder, load, setFolder, storeElement
-
Methods inherited from class org.eclipse.emf.ecp.internal.core.util.ElementRegistry
addResolveListener, descriptorChanged, getElementName, removeResolveListener
-
Methods inherited from class org.eclipse.emf.ecp.internal.core.util.Registry
addObserver, changeElements, disposed, doChangeElements, getElement, getElementCount, getElementNames, getElements, hasElement, hasElements, isDisposingElement, isRemoveDisposedElements, removeObserver
-
Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
-
Methods inherited from class org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
-
-
-
-
Method Detail
-
getRepository
public InternalRepository getRepository(java.lang.Object adaptable)
This method returns aECPRepository
from an adaptable.- Specified by:
getRepository
in interfaceECPRepositoryManager
- Parameters:
adaptable
- the adaptable to adapt- Returns:
ECPRepository
or null if the adaptable could not be adapted
-
getRepository
public InternalRepository getRepository(java.lang.String name)
This method returns a repository by its name.- Specified by:
getRepository
in interfaceECPRepositoryManager
- Parameters:
name
- the name of the repository- Returns:
- the
ECPRepository
or null if no repository with such name exists.
-
getRepositories
public java.util.Collection<ECPRepository> getRepositories()
Returns all known repositories.- Specified by:
getRepositories
in interfaceECPRepositoryManager
- Returns:
- an array of all known
ECPRepositories
-
hasRepositories
public boolean hasRepositories()
Checks whether any repositories are available.- Returns:
- true if any repository is available, false otherwise
-
addRepository
public ECPRepository addRepository(ECPProvider provider, java.lang.String name, java.lang.String label, java.lang.String description, ECPProperties properties)
This method allows the user to create a repository. IfECPProvider.hasCreateRepositorySupport()
returns false an UnsupportedOperationException is thrown.- Specified by:
addRepository
in interfaceECPRepositoryManager
- Parameters:
provider
- theECPProvider
of this repositoryname
- the name of the new repositorylabel
- the label of the new repositorydescription
- the description of the new repositoryproperties
- theECPProperties
of this repository- Returns:
- the created
ECPRepository
-
notifyObjectsChanged
public void notifyObjectsChanged(ECPRepository repository, java.util.Collection<java.lang.Object> objects)
This is called by theECPRepository
to notificate observers about chnages it its objects.- Parameters:
repository
- the repository where the changes occuredobjects
- the changed objects
-
providersChanged
public void providersChanged(java.util.Collection<ECPProvider> oldProviders, java.util.Collection<ECPProvider> newProviders)
This is called to indicate, that providers changed. Either a provider was added or removed.- Specified by:
providersChanged
in interfaceECPProvidersChangedObserver
- Parameters:
oldProviders
- provider before changenewProviders
- providers after change
-
getFile
protected java.io.File getFile(InternalRepository element)
- Overrides:
getFile
in classPropertiesStore<InternalRepository,ECPObserver>
-
isLoadableElement
protected boolean isLoadableElement(java.io.File file)
- Overrides:
isLoadableElement
in classPropertiesStore<InternalRepository,ECPObserver>
-
loadElement
protected InternalRepository loadElement(java.io.ObjectInput in) throws java.io.IOException
Description copied from class:PropertiesStore
Loads an element.- Specified by:
loadElement
in classPropertiesStore<InternalRepository,ECPObserver>
- Parameters:
in
- anObjectInput
to load the element from- Returns:
- the element
- Throws:
java.io.IOException
- if the element cannot be loaded correctly
-
notifyObservers
protected void notifyObservers(java.util.Collection<InternalRepository> oldRepositories, java.util.Collection<InternalRepository> newRepositories) throws java.lang.Exception
Description copied from class:Registry
Notifies observers that the elements in the registry have changed.- Specified by:
notifyObservers
in classRegistry<InternalRepository,ECPObserver>
- Parameters:
oldRepositories
- The old collection of elementsnewRepositories
- The new collection of elements- Throws:
java.lang.Exception
-
doActivate
protected void doActivate() throws java.lang.Exception
- Overrides:
doActivate
in classPropertiesStore<InternalRepository,ECPObserver>
- Throws:
java.lang.Exception
-
doDeactivate
protected void doDeactivate() throws java.lang.Exception
- Overrides:
doDeactivate
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
- Throws:
java.lang.Exception
-
-