Package org.jetbrains.mps.openapi.module
Class SRepositoryContentAdapter
- java.lang.Object
- 
- org.jetbrains.mps.openapi.module.SModuleListenerBase
- 
- org.jetbrains.mps.openapi.module.SRepositoryContentAdapter
 
 
- 
- All Implemented Interfaces:
- SModelListener,- SNodeAccessListener,- SNodeChangeListener,- SModuleListener,- SRepositoryAttachListener,- SRepositoryListener
 
 public class SRepositoryContentAdapter extends SModuleListenerBase implements SModelListener, SModuleListener, SRepositoryListener, SRepositoryAttachListener, SNodeChangeListener, SNodeAccessListener This class serves as a convenient implementation of all repository listeners at once. In addition it tracks all objects (modules, models and nodes) as they come and leave the repository.
- 
- 
Constructor SummaryConstructors Modifier Constructor Description protectedSRepositoryContentAdapter()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbeforeModelRemoved(SModule module, SModel model)voidbeforeModuleRemoved(SModule module)voidcommandFinished(SRepository repository)voidcommandStarted(SRepository repository)Notifications about commands in aModelAccessassociated with the repository.voidconflictDetected(SModel model)This event is fired when the storage-memory conflict is detected (== isChanged() && needsReloading()).protected booleanisIncluded(SModule module)voidmodelAdded(SModule module, SModel model)voidmodelAttached(SModel model, SRepository repository)Fired when a model becomes visible in a repository.voidmodelDetached(SModel model, SRepository repository)Fired when a model is no longer part of a repository, e.g.voidmodelLoaded(SModel model, boolean partially)voidmodelRemoved(SModule module, SModelReference ref)Model is removed from a repository.voidmodelReplaced(SModel model)voidmodelSaved(SModel model)voidmodelUnloaded(SModel model)voidmoduleAdded(SModule module)voidmoduleChanged(SModule module)Any change including module dependencies and descriptor reload from diskvoidmoduleRemoved(SModuleReference module)voidnodeAdded(SNodeAddEvent event)voidnodeRead(SNodeReadEvent event)voidnodeRemoved(SNodeRemoveEvent event)voidproblemsDetected(SModel model, Iterable<SModel.Problem> problems)This method is called each time a new problem, or a set of problems is discovered.voidpropertyChanged(SPropertyChangeEvent event)voidpropertyRead(SPropertyReadEvent event)voidreferenceChanged(SReferenceChangeEvent event)voidreferenceRead(SReferenceReadEvent event)voidrepositoryChanged()Handy notification about change in repository structure, namely added/removed modules and models.voidrepositoryCommandFinished(SRepository repository)voidrepositoryCommandStarted(SRepository repository)protected voidstartListening(SModel model)no-op by default.protected voidstartListening(SModule module)voidstartListening(SRepository repository)protected voidstopListening(SModel model)no-op by defaultprotected voidstopListening(SModule module)voidstopListening(SRepository repository)voidsubscribeTo(SRepository repository)voidunsubscribeFrom(SRepository repository)voidupdateFinished(SRepository repository)voidupdateStarted(SRepository repository)- 
Methods inherited from class org.jetbrains.mps.openapi.module.SModuleListenerBasebeforeModelRenamed, dependencyAdded, dependencyRemoved, languageAdded, languageRemoved, modelRenamed, moduleRenamed
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.jetbrains.mps.openapi.module.SModuleListenerbeforeModelRenamed, dependencyAdded, dependencyRemoved, languageAdded, languageRemoved, modelRenamed
 
- 
 
- 
- 
- 
Method Detail- 
subscribeTopublic void subscribeTo(SRepository repository) 
 - 
unsubscribeFrompublic void unsubscribeFrom(SRepository repository) 
 - 
startListeningpublic void startListening(@NotNull SRepository repository) - Specified by:
- startListeningin interface- SRepositoryAttachListener
 
 - 
stopListeningpublic void stopListening(@NotNull SRepository repository) - Specified by:
- stopListeningin interface- SRepositoryAttachListener
 
 - 
startListeningprotected void startListening(SModule module) 
 - 
stopListeningprotected void stopListening(SModule module) 
 - 
startListeningprotected void startListening(SModel model) no-op by default. Subclasses that wish to get model/node change/access events, shall add appropriate listeners here. These listeners are implemented by this class only for convenience, events are not dispatched unless proper listener is explicitly attached.
 - 
stopListeningprotected void stopListening(SModel model) no-op by default
 - 
isIncludedprotected boolean isIncluded(SModule module) - Returns:
- always true
 
 - 
moduleAddedpublic void moduleAdded(@NotNull SModule module) - Specified by:
- moduleAddedin interface- SRepositoryListener
 
 - 
beforeModuleRemovedpublic void beforeModuleRemoved(@NotNull SModule module) - Specified by:
- beforeModuleRemovedin interface- SRepositoryListener
 
 - 
moduleRemovedpublic void moduleRemoved(@NotNull SModuleReference module) - Specified by:
- moduleRemovedin interface- SRepositoryListener
 
 - 
commandStartedpublic void commandStarted(SRepository repository) Description copied from interface:SRepositoryListenerNotifications about commands in aModelAccessassociated with the repository. It's convenient to have command notifications right in SRepositoryListener implementation, like RepositoryChangeTracker (the one where all changes within a command are collected), rather than have distinctCommandListener. UnlikeCommandListener, gives context repository to facilitate use of the same listener instance among different repositories.- Specified by:
- commandStartedin interface- SRepositoryListener
- See Also:
- CommandListener.commandStarted()
 
 - 
commandFinishedpublic void commandFinished(SRepository repository) - Specified by:
- commandFinishedin interface- SRepositoryListener
- See Also:
- CommandListener.commandFinished()
 
 - 
updateStartedpublic void updateStarted(SRepository repository) - Specified by:
- updateStartedin interface- SRepositoryListener
 
 - 
updateFinishedpublic void updateFinished(SRepository repository) - Specified by:
- updateFinishedin interface- SRepositoryListener
 
 - 
repositoryCommandStartedpublic void repositoryCommandStarted(SRepository repository) - Specified by:
- repositoryCommandStartedin interface- SRepositoryListener
 
 - 
repositoryCommandFinishedpublic void repositoryCommandFinished(SRepository repository) - Specified by:
- repositoryCommandFinishedin interface- SRepositoryListener
 
 - 
moduleChangedpublic void moduleChanged(SModule module) Description copied from interface:SModuleListenerAny change including module dependencies and descriptor reload from disk- Specified by:
- moduleChangedin interface- SModuleListener
- Overrides:
- moduleChangedin class- SModuleListenerBase
 
 - 
modelAddedpublic void modelAdded(SModule module, SModel model) - Specified by:
- modelAddedin interface- SModuleListener
- Overrides:
- modelAddedin class- SModuleListenerBase
 
 - 
beforeModelRemovedpublic void beforeModelRemoved(SModule module, SModel model) - Specified by:
- beforeModelRemovedin interface- SModuleListener
- Overrides:
- beforeModelRemovedin class- SModuleListenerBase
 
 - 
modelRemovedpublic void modelRemoved(SModule module, SModelReference ref) Description copied from interface:SModuleListenerModel is removed from a repository. Note, it doesn't necessarily mean model was deleted. Does NOT come for module's models when module is being un-registered from a repository- Specified by:
- modelRemovedin interface- SModuleListener
- Overrides:
- modelRemovedin class- SModuleListenerBase
 
 - 
modelLoadedpublic void modelLoaded(SModel model, boolean partially) - Specified by:
- modelLoadedin interface- SModelListener
 
 - 
modelReplacedpublic void modelReplaced(SModel model) - Specified by:
- modelReplacedin interface- SModelListener
 
 - 
modelUnloadedpublic void modelUnloaded(SModel model) - Specified by:
- modelUnloadedin interface- SModelListener
 
 - 
modelSavedpublic void modelSaved(SModel model) - Specified by:
- modelSavedin interface- SModelListener
 
 - 
conflictDetectedpublic void conflictDetected(SModel model) Description copied from interface:SModelListenerThis event is fired when the storage-memory conflict is detected (== isChanged() && needsReloading()). An IDE can listen to it and give user a way to resolve the conflict by invoking either updateTimestamp(), or reloadFromSource().- Specified by:
- conflictDetectedin interface- SModelListener
 
 - 
problemsDetectedpublic void problemsDetected(SModel model, Iterable<SModel.Problem> problems) Description copied from interface:SModelListenerThis method is called each time a new problem, or a set of problems is discovered.- Specified by:
- problemsDetectedin interface- SModelListener
 
 - 
modelAttachedpublic void modelAttached(SModel model, SRepository repository) Description copied from interface:SModelListenerFired when a model becomes visible in a repository. IMPORTANT: it's unspecified whether the model is part of a module the moment this event is fired or not. Do not expectSModel.getModule()to give meaningful value. This contract may change (i.e. become stricter) in future. NOTE: This is not an event most clients could make use of, as it's technically tricky to attach a listener to a model not yet visible inside a repository, and thus it's more of internal mechanism (i.e. code that instantiates a model may attach a listener to not yet published model and thus get notified). Besides, detached models do not get their listeners automatically discarded, and the listeners get a chance to react to model detach/re-attach sequence with this event.- Specified by:
- modelAttachedin interface- SModelListener
- Parameters:
- model- affected model, never- null
- repository- repository the model become available at, never- null
 
 - 
modelDetachedpublic void modelDetached(SModel model, SRepository repository) Description copied from interface:SModelListenerFired when a model is no longer part of a repository, e.g. due to removal from module. This event is intended to clean-up listener caches associated with the model and to gracefully unregister other listeners. IMPORTANT: it's unspecified whether the model is part of a module the moment this event is fired or not. Do not expectSModel.getModule()to give meaningful value. This contract may change (i.e. become stricter) in future. Primary drive force for this event is desire to add model listener only, without a need to listen to module events to find out when the model is no longer available. Note, listeners not unregistered from the model would get notified withSModelListener.modelAttached(SModel, SRepository)in case detached model is brought back (perhaps, in completely different module and repository).- Specified by:
- modelDetachedin interface- SModelListener
- Parameters:
- model- affected model, never- null
- repository- repository the model become available at, never- null
 
 - 
repositoryChangedpublic void repositoryChanged() Handy notification about change in repository structure, namely added/removed modules and models. For unknown reason also notifies about'unspecified'module changes no-op by default.
 - 
nodeReadpublic void nodeRead(@NotNull SNodeReadEvent event) - Specified by:
- nodeReadin interface- SNodeAccessListener
 
 - 
propertyReadpublic void propertyRead(@NotNull SPropertyReadEvent event) - Specified by:
- propertyReadin interface- SNodeAccessListener
 
 - 
referenceReadpublic void referenceRead(@NotNull SReferenceReadEvent event) - Specified by:
- referenceReadin interface- SNodeAccessListener
 
 - 
propertyChangedpublic void propertyChanged(@NotNull SPropertyChangeEvent event) - Specified by:
- propertyChangedin interface- SNodeChangeListener
 
 - 
referenceChangedpublic void referenceChanged(@NotNull SReferenceChangeEvent event) - Specified by:
- referenceChangedin interface- SNodeChangeListener
 
 - 
nodeAddedpublic void nodeAdded(@NotNull SNodeAddEvent event) - Specified by:
- nodeAddedin interface- SNodeChangeListener
 
 - 
nodeRemovedpublic void nodeRemoved(@NotNull SNodeRemoveEvent event) - Specified by:
- nodeRemovedin interface- SNodeChangeListener
 
 
- 
 
-