Package jetbrains.mps.smodel
Class LazyEditableSModelBase
- java.lang.Object
 - 
- jetbrains.mps.extapi.model.SModelDescriptorStub
 - 
- jetbrains.mps.extapi.model.SModelBase
 - 
- jetbrains.mps.extapi.model.EditableSModelBase
 - 
- jetbrains.mps.smodel.LazyEditableSModelBase
 
 
 
 
 
- 
- All Implemented Interfaces:
 ModelWithDisposeInfo,FastNodeFinder.Factory,SModelInternal,EditableSModel,SModel
- Direct Known Subclasses:
 DefaultSModelDescriptor
public abstract class LazyEditableSModelBase extends EditableSModelBase
Model with data that could get gradually loaded in subsequent steps. evgeny, 6/6/13 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from interface org.jetbrains.mps.openapi.model.SModel
SModel.Problem 
 - 
 
- 
Field Summary
- 
Fields inherited from class jetbrains.mps.extapi.model.EditableSModelBase
myTimestampTracker 
 - 
 
- 
Constructor Summary
Constructors Constructor Description LazyEditableSModelBase(SModelReference modelReference, DataSource source) 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voiddoUnload()Perform actual dispose of model data andSModelBase.setLoadingState(ModelLoadingState)changes loading state}.protected SModelgetCurrentModelInternal()Likely, shall return SModelData eventuallySModelgetSModelInternal()Migration to 3.0.voidload()When owning a read action lock, this method will fully load the model from the storage.protected abstract ModelLoadResultloadSModel(ModelLoadingState state)loads model from the source, w/o changing state of SModelDescriptorprotected voidreloadContents()- 
Methods inherited from class jetbrains.mps.extapi.model.EditableSModelBase
addChangeListener, addRootNode, attach, detach, isChanged, isReadOnly, needsReloading, reloadFromSource, removeChangeListener, removeRootNode, rename, resolveDiskConflict, save, saveModel, setChanged, toString, unload, updateTimestamp 
- 
Methods inherited from class jetbrains.mps.extapi.model.SModelBase
addAccessListener, addModelListener, assertCanChange, assertCanRead, changeModelReference, createNode, createNode, fireBeforeModelRenamed, fireConflictDetected, fireModelRenamed, fireModelReplaced, fireModelSaved, fireModelStateChanged, fireProblemsDetected, getLoadingState, getModelData, getModelId, getModelName, getModelRoot, getModule, getName, getNode, getNodeEventDispatch, getProblems, getReference, getRepository, getRootNodes, getSource, isLoaded, removeAccessListener, removeModelListener, replaceModelAndFireEvent, setLoadingState, setModelRoot, setModule 
- 
Methods inherited from class jetbrains.mps.extapi.model.SModelDescriptorStub
addDevKit, addEngagedOnGenerationLanguage, addLanguage, addModelImport, addModelListener, clearListeners, createNodeFinder, deleteDevKit, deleteLanguageId, deleteModelImport, fireBeforeModelDisposed, fireBeforeModelFileChanged, fireBeforeModelRenamed, fireModelFileChanged, fireModelRenamed, fireModelStateChanged, getDisposedStacktrace, getLanguageImportVersion, getLanguagesEngagedOnGeneration, getModelDepsManager, getModelImports, getModelListeners, getSModel, importedDevkits, importedLanguageIds, isDisposed, removeEngagedOnGenerationLanguage, removeModelListener, setLanguageImportVersion, updateExternalReferences 
- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 
- 
Methods inherited from interface org.jetbrains.mps.openapi.model.SModel
addAccessListener, addModelListener, createNode, createNode, getModelId, getModelName, getModelRoot, getModule, getName, getNode, getProblems, getReference, getRepository, getRootNodes, getSource, isLoaded, removeAccessListener, removeModelListener 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
LazyEditableSModelBase
public LazyEditableSModelBase(@NotNull SModelReference modelReference, @NotNull DataSource source)
 
 - 
 
- 
Method Detail
- 
getSModelInternal
public final SModel getSModelInternal()
Description copied from class:SModelDescriptorStubMigration to 3.0. Loads and returns model data. FIXME Replace uses of this method with getSModel(), make it abstract and implement in SModelBase subclasses. The name getSModelInternal is misleading as it clashes with SModelInternal interface this class implements. Though getSModel is not much better, at least in the context of SModelDescriptor it makes more sense.- Specified by:
 getSModelInternalin classSModelDescriptorStub
 
- 
load
public final void load()
Description copied from interface:SModelWhen owning a read action lock, this method will fully load the model from the storage. Does nothing if already loaded. The load() method is called automatically on a not-loaded model whenever elements from it are being resolved. Problems can be retrieved later by theSModel.getProblems()method.- Specified by:
 loadin interfaceSModel- Overrides:
 loadin classSModelBase
 
- 
getCurrentModelInternal
protected final SModel getCurrentModelInternal()
Description copied from class:SModelBaseLikely, shall return SModelData eventually- Specified by:
 getCurrentModelInternalin classSModelBase- Returns:
 - actual model data or 
nullif not initialized yet 
 
- 
doUnload
protected void doUnload()
Description copied from class:SModelBasePerform actual dispose of model data andSModelBase.setLoadingState(ModelLoadingState)changes loading state}. No loading state event is sent (responsibility ofSModelBase.unload(). Subclasses shall override to clean instance fields and generally shall delegate to this implementation first to dispose model data.- Overrides:
 doUnloadin classSModelBase
 
- 
loadSModel
protected abstract ModelLoadResult loadSModel(ModelLoadingState state)
loads model from the source, w/o changing state of SModelDescriptor 
- 
reloadContents
protected void reloadContents()
- Specified by:
 reloadContentsin classEditableSModelBase
 
 - 
 
 -