Package jetbrains.mps.module
Class ReloadableModuleBase
- java.lang.Object
 - 
- jetbrains.mps.extapi.module.SModuleBase
 - 
- jetbrains.mps.project.AbstractModule
 - 
- jetbrains.mps.module.ReloadableModuleBase
 
 
 
 
- 
- All Implemented Interfaces:
 EditableSModule,ReloadableModule,SModule
- Direct Known Subclasses:
 Generator,Language,Solution,TempModule
public class ReloadableModuleBase extends AbstractModule implements ReloadableModule
ReloadableModule which delegates to ClassLoaderManager 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceReloadableModuleBase.SModuleDependenciesListener- 
Nested classes/interfaces inherited from class jetbrains.mps.project.AbstractModule
AbstractModule.LangAndDevkits 
- 
Nested classes/interfaces inherited from interface jetbrains.mps.module.ReloadableModule
ReloadableModule.DeploymentStatus 
 - 
 
- 
Field Summary
- 
Fields inherited from class jetbrains.mps.project.AbstractModule
CLASSES, CLASSES_GEN, MODULE_DIR 
- 
Fields inherited from class jetbrains.mps.extapi.module.SModuleBase
MODEL_BY_NAME_COMPARATOR 
 - 
 
- 
Constructor Summary
Constructors Modifier Constructor Description protectedReloadableModuleBase()protectedReloadableModuleBase(IFile file)protectedReloadableModuleBase(FileSystem fileSystem) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDependenciesListener(ReloadableModuleBase.SModuleDependenciesListener listener)protected voiddependenciesChanged()protected voidfireDependenciesChanged()Class<?>getClass(String classFqName)protected Class<?>getClass(String classFqName, boolean ownClassOnly)MPSModuleClassLoadergetClassLoader0()Class<?>getOwnClass(String classFqName)ReloadableModule.DeploymentStatusgetStatus()voidreload()Call it to replace the old class loader of this module with a new one.voidremoveDependenciesListener(ReloadableModuleBase.SModuleDependenciesListener listener)- 
Methods inherited from class jetbrains.mps.project.AbstractModule
addDependency, attach, collectLanguagesAndDevkits, collectMandatoryFacetTypes, dispose, doSetModuleDescriptor, getDeclaredDependencies, getDependencyVersion, getDependencyVersion, getDescriptorFile, getFacet, getFacets, getFileSystem, getModelRoots, getModuleDescriptor, getModuleId, getModuleName, getModuleReference, getModuleSourceDir, getModuleVersion, getOutputPath, getScope, getSourcePaths, getUsedLanguages, getUsedLanguageVersion, getUsedLanguageVersion, handleReadProblem, isChanged, isPackaged, isReadOnly, loadRoots, onModuleLoad, reloadAfterDescriptorChange, removeDependency, rename, renameModels, save, setChanged, setModuleDescriptor, setModuleDescriptor, setModuleReference, setModuleVersion, setupFacet, toString, updateExternalReferences, updateFacets, updateModelsSet, updatePackagedDescriptor 
- 
Methods inherited from class jetbrains.mps.extapi.module.SModuleBase
addModuleListener, assertCanChange, assertCanRead, fireBeforeModelRenamed, fireChanged, fireModelRenamed, fireModuleRenamed, getModel, getModels, getRepository, registerModel, removeModuleListener, unregisterModel 
- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 
- 
Methods inherited from interface jetbrains.mps.module.ReloadableModule
canLoadClasses, getClassLoader, willLoad 
- 
Methods inherited from interface org.jetbrains.mps.openapi.module.SModule
addModuleListener, getDeclaredDependencies, getFacet, getFacets, getModel, getModelRoots, getModels, getModels, getModuleId, getModuleName, getModuleReference, getRepository, getUsedLanguages, getUsedLanguageVersion, isPackaged, isReadOnly, removeModuleListener 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
ReloadableModuleBase
protected ReloadableModuleBase()
 
- 
ReloadableModuleBase
protected ReloadableModuleBase(@NotNull FileSystem fileSystem)
 
 - 
 
- 
Method Detail
- 
getClass
@NotNull public Class<?> getClass(@NotNull String classFqName) throws ClassNotFoundException
- Specified by:
 getClassin interfaceReloadableModule- Returns:
 - a class which can be obtained by calling #getclass from
 
ReloadableModule.getClassLoader()method. a ModuleClassLoader. ModuleClassLoader's #loadClass method yields some additional information about the reasons of class which could not be found. Clients of this API are supposed to process it on their own behalf. * @see jetbrains.mps.classloading.ModuleClassNotFoundException * @see jetbrains.mps.classloading.ModuleIsNotLoadableException warning: this method is lazy implemented! - Throws:
 ClassNotFoundException
 
- 
getOwnClass
@NotNull public Class<?> getOwnClass(@NotNull String classFqName) throws ClassNotFoundException
- Specified by:
 getOwnClassin interfaceReloadableModule- Returns:
 - a class which can be obtained by calling #getClass from
 
ReloadableModule.getClassLoader()method in the case when the defining class loader is a ModuleClassLoader. - Throws:
 ClassNotFoundException- See Also:
 ModuleClassNotFoundException,ModuleIsNotLoadableException,ModuleClassLoader,warning: this method is lazy implemented!
 
- 
getClass
@NotNull protected Class<?> getClass(String classFqName, boolean ownClassOnly) throws ClassNotFoundException
- Throws:
 ClassNotFoundException
 
- 
getClassLoader0
@NotNull public final MPSModuleClassLoader getClassLoader0()
- Specified by:
 getClassLoader0in interfaceReloadableModule- Returns:
 - not null classloader, if a specific module-related class loader is not found than the system classloader is returned
 
 
- 
reload
public final void reload()
Description copied from interface:ReloadableModuleCall it to replace the old class loader of this module with a new one. To reload more than one module all together check outClassLoaderManager.reloadModules(Iterable, org.jetbrains.mps.openapi.util.ProgressMonitor)method.- Specified by:
 reloadin interfaceReloadableModule
 
- 
getStatus
@NotNull public final ReloadableModule.DeploymentStatus getStatus()
- Specified by:
 getStatusin interfaceReloadableModule
 
- 
dependenciesChanged
protected void dependenciesChanged()
- Overrides:
 dependenciesChangedin classAbstractModule
 
- 
fireDependenciesChanged
protected final void fireDependenciesChanged()
 
- 
addDependenciesListener
public final void addDependenciesListener(ReloadableModuleBase.SModuleDependenciesListener listener)
 
- 
removeDependenciesListener
public final void removeDependenciesListener(ReloadableModuleBase.SModuleDependenciesListener listener)
 
 - 
 
 -