public abstract class AbstractWorkspaceEditingDomainMapping extends java.lang.Object implements IWorkspaceEditingDomainMapping, ITransactionalEditingDomainFactoryListener
IWorkspaceEditingDomainMapping
which provides default implementations for some
of the methods. The class implements the ITransactionalEditingDomainFactoryListener
interface in order to
stay up-to-date with the current EditingDomains. GlobalListeners are handled this way.Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
EDITING_DOMAIN_ID_PREFIX |
protected org.eclipse.core.runtime.ListenerList |
globalOperationHistoryListeners |
protected org.eclipse.core.runtime.ListenerList |
globalResourceSetListeners |
protected java.util.Map<org.eclipse.emf.transaction.TransactionalEditingDomain,org.eclipse.emf.workspace.util.WorkspaceSynchronizer> |
modelWorkspaceSynchronizers |
protected java.util.Map<org.eclipse.emf.transaction.TransactionalEditingDomain,IResourceSaveIndicator> |
resourceSaveIndicators |
Modifier | Constructor and Description |
---|---|
protected |
AbstractWorkspaceEditingDomainMapping() |
Modifier and Type | Method and Description |
---|---|
void |
addGlobalOperationHistoryListener(org.eclipse.core.commands.operations.IOperationHistoryListener listener)
Registers a listener for all OperationHistories in the workspace.
|
void |
addGlobalResourceSetListener(org.eclipse.emf.transaction.ResourceSetListener listener)
Registers a listener for all model changes in the workspace.
|
protected org.eclipse.emf.transaction.TransactionalEditingDomain |
createEditingDomain(IExtendedTransactionalEditingDomainFactory factory,
java.util.Collection<IMetaModelDescriptor> mmDescriptors) |
protected IResourceSaveIndicator |
createResourceSaveIndicator(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain) |
void |
dispose()
Disposes of this
editing domain mapping and any resources that it has
allocated. |
static java.lang.String |
getDefaultEditingDomainId(java.util.Collection<IMetaModelDescriptor> mmDescriptors)
Returns a default identifier for the specified
editingDomain . |
org.eclipse.emf.transaction.TransactionalEditingDomain |
getEditingDomain(org.eclipse.core.resources.IFile file)
Returns the
editing domain which corresponds to the given file . |
protected IExtendedTransactionalEditingDomainFactory |
getEditingDomainFactory(IMetaModelDescriptor mmDescriptor) |
protected java.lang.String |
getEditingDomainId(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain,
java.util.Collection<IMetaModelDescriptor> mmDescriptors)
Returns a unique identifier for the specified
editingDomain , considering the
given mmDescriptors parameter. |
java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> |
getEditingDomains(org.eclipse.core.resources.IContainer container)
Returns the editing domains associated with the resources contained in the given container.
|
protected java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> |
getEditingDomains(org.eclipse.core.resources.IFolder folder) |
protected java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> |
getEditingDomains(org.eclipse.core.resources.IProject project) |
protected java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> |
getEditingDomains(org.eclipse.core.resources.IWorkspaceRoot workspaceRoot) |
IResourceSaveIndicator |
getResourceSaveIndicator(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
Returns an IResourceSaveIndicator for the provided EditingDomain.
|
void |
postCreateEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
Notifies clients that an editing domain has been created.
|
void |
preDisposeEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
Notifies clients that an editing domain is about to be disposed.
|
void |
removeGlobalOperationHistoryListener(org.eclipse.core.commands.operations.IOperationHistoryListener listener)
Removes a registered IOperationHistoryListener which is listening to all OperationHistories in the workspace.
|
void |
removeGlobalResourceSetListener(org.eclipse.emf.transaction.ResourceSetListener listener)
Removes a ResourceSetListener listening to all model changes in the workspace.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getEditingDomain, getEditingDomains
protected static final java.lang.String EDITING_DOMAIN_ID_PREFIX
protected java.util.Map<org.eclipse.emf.transaction.TransactionalEditingDomain,IResourceSaveIndicator> resourceSaveIndicators
protected java.util.Map<org.eclipse.emf.transaction.TransactionalEditingDomain,org.eclipse.emf.workspace.util.WorkspaceSynchronizer> modelWorkspaceSynchronizers
protected org.eclipse.core.runtime.ListenerList globalResourceSetListeners
protected org.eclipse.core.runtime.ListenerList globalOperationHistoryListeners
protected AbstractWorkspaceEditingDomainMapping()
public static java.lang.String getDefaultEditingDomainId(java.util.Collection<IMetaModelDescriptor> mmDescriptors)
editingDomain
. It is composed
of the prefix "editingDomainFor" followed by the identifiers of the specified
IMetaModelDescriptor
s. Implemented as static method in order to be accessible from test cases.mmDescriptors
- A list of IMetaModelDescriptors the given editing domain should be associated to.editingDomain
.protected org.eclipse.emf.transaction.TransactionalEditingDomain createEditingDomain(IExtendedTransactionalEditingDomainFactory factory, java.util.Collection<IMetaModelDescriptor> mmDescriptors)
protected IResourceSaveIndicator createResourceSaveIndicator(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
protected IExtendedTransactionalEditingDomainFactory getEditingDomainFactory(IMetaModelDescriptor mmDescriptor)
protected java.lang.String getEditingDomainId(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain, java.util.Collection<IMetaModelDescriptor> mmDescriptors)
editingDomain
, considering the
given mmDescriptors
parameter. This returned string identifier is used as key in the map of
editingDomains owned by this mapping.editingDomain
- The editing domain for which an identifier must be returned.mmDescriptors
- A list of IMetaModelDescriptors the given editing domain should be associated to.editingDomain
.public org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain(org.eclipse.core.resources.IFile file)
IWorkspaceEditingDomainMapping
editing domain
which corresponds to the given file
.getEditingDomain
in interface IWorkspaceEditingDomainMapping
file
- The file
whose editing domain
is to be returned.editing domain
for the specified file
, or
null
if the file
doesn't belong to any editing domain
.public final java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> getEditingDomains(org.eclipse.core.resources.IContainer container)
container
and will determine the editing domain
s with which the resources can be handled.
Delegates to the right protected method according to the type of the specified container
.
getEditingDomains
in interface IWorkspaceEditingDomainMapping
container
- The container containing the resources for which the
editing domains are to be returned.container
.protected java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> getEditingDomains(org.eclipse.core.resources.IFolder folder)
protected java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> getEditingDomains(org.eclipse.core.resources.IProject project)
protected java.util.List<org.eclipse.emf.transaction.TransactionalEditingDomain> getEditingDomains(org.eclipse.core.resources.IWorkspaceRoot workspaceRoot)
public void addGlobalResourceSetListener(org.eclipse.emf.transaction.ResourceSetListener listener)
IWorkspaceEditingDomainMapping
ResourceSetListener.resourceSetChanged(org.eclipse.emf.transaction.ResourceSetChangeEvent)
will be called every time a loaded
IResource in the workspace is changed.addGlobalResourceSetListener
in interface IWorkspaceEditingDomainMapping
listener
- The listener to be notified of the model changes.public void removeGlobalResourceSetListener(org.eclipse.emf.transaction.ResourceSetListener listener)
IWorkspaceEditingDomainMapping
IWorkspaceEditingDomainMapping.addGlobalResourceSetListener(ResourceSetListener)
the method will do nothing.removeGlobalResourceSetListener
in interface IWorkspaceEditingDomainMapping
listener
- The listener to be removed.public void addGlobalOperationHistoryListener(org.eclipse.core.commands.operations.IOperationHistoryListener listener)
IWorkspaceEditingDomainMapping
addGlobalOperationHistoryListener
in interface IWorkspaceEditingDomainMapping
listener
- The listener to be notified of the events in the Workspace's OperationHistories.public void removeGlobalOperationHistoryListener(org.eclipse.core.commands.operations.IOperationHistoryListener listener)
IWorkspaceEditingDomainMapping
IWorkspaceEditingDomainMapping.addGlobalOperationHistoryListener(IOperationHistoryListener)
this method will do nothing.removeGlobalOperationHistoryListener
in interface IWorkspaceEditingDomainMapping
listener
- The listener to be removed.public IResourceSaveIndicator getResourceSaveIndicator(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
IWorkspaceEditingDomainMapping
getResourceSaveIndicator
in interface IWorkspaceEditingDomainMapping
editingDomain
- The EditingDomain for which the IResourceSaveIndicator is to be returned.public void postCreateEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
ITransactionalEditingDomainFactoryListener
postCreateEditingDomain
in interface ITransactionalEditingDomainFactoryListener
editingDomain
- The editing domain that has been created.public void preDisposeEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain)
ITransactionalEditingDomainFactoryListener
preDisposeEditingDomain
in interface ITransactionalEditingDomainFactoryListener
editingDomain
- The editing domain being disposed.public void dispose()
IWorkspaceEditingDomainMapping
editing domain
mapping and any resources that it has
allocated. Editing domain mappings must be disposed when they are no longer in use, but only by the client that
created them (in case of sharing of editing domain mappings).
Note that editing domain
mappings registered on the extension point may
not be disposed.
dispose
in interface IWorkspaceEditingDomainMapping