Package jetbrains.mps.library
Class ModulesMiner
- java.lang.Object
 - 
- jetbrains.mps.library.ModulesMiner
 
 
- 
public final class ModulesMiner extends Object
Detects modules in a folder. Methods of this class are not thread-safe, do not share instances of this class between threads. NB: we will go inside the jar if it either has a 'modules' folder (with modules (!)) or has a module.xml file in the META-INF folder 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classModulesMiner.ModuleHandle 
- 
Field Summary
Fields Modifier and Type Field Description static StringMETA_INFstatic StringMETA_INF_MODULE_XMLstatic StringMODULE_XMLstatic StringMODULES_DIRstatic StringSLASH_META_INF_MODULE_XML 
- 
Constructor Summary
Constructors Constructor Description ModulesMiner()Deprecated.useModulesMiner(Collection, DescriptorIOFacade)insteadModulesMiner(Collection<IFile> excludes)Deprecated.useModulesMiner(Collection, DescriptorIOFacade)insteadModulesMiner(Collection<IFile> excludes, DescriptorIOFacade descriptorsIO)ModulesMiner(ComponentHost componentHost) 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ModulesMinercollectModules(IFile file)Updatesoutcomeand excludes, may be invoked several times.Collection<ModulesMiner.ModuleHandle>getCollectedModules()static IFilegetSourceDescriptorFile(IFile deploymentFile, DeploymentDescriptor deploymentDescriptor)ModulesMiner.ModuleHandleloadHandle(ModelInputStream stream)ModulesMiner.ModuleHandleloadModuleHandle(IFile file)Attempts to load module descriptor from file.voidsaveHandle(ModulesMiner.ModuleHandle handle, ModelOutputStream stream) 
 - 
 
- 
- 
Field Detail
- 
META_INF
public static final String META_INF
- See Also:
 - Constant Field Values
 
 
- 
MODULE_XML
public static final String MODULE_XML
- See Also:
 - Constant Field Values
 
 
- 
MODULES_DIR
public static final String MODULES_DIR
- See Also:
 - Constant Field Values
 
 
- 
META_INF_MODULE_XML
public static final String META_INF_MODULE_XML
- See Also:
 - Constant Field Values
 
 
- 
SLASH_META_INF_MODULE_XML
public static final String SLASH_META_INF_MODULE_XML
- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Constructor Detail
- 
ModulesMiner
@Deprecated public ModulesMiner()
Deprecated.useModulesMiner(Collection, DescriptorIOFacade)instead 
- 
ModulesMiner
public ModulesMiner(@NotNull ComponentHost componentHost)
- Parameters:
 componentHost- access to MPS configured components- Since:
 - 2018.2
 
 
- 
ModulesMiner
public ModulesMiner(@NotNull Collection<IFile> excludes, DescriptorIOFacade descriptorsIO)
- Since:
 - 2018.2
 
 
- 
ModulesMiner
@Deprecated public ModulesMiner(@NotNull Collection<IFile> excludes)
Deprecated.useModulesMiner(Collection, DescriptorIOFacade)instead 
 - 
 
- 
Method Detail
- 
collectModules
@NotNull public ModulesMiner collectModules(IFile file)
Updatesoutcomeand excludes, may be invoked several times.- Parameters:
 file- folder or file (descriptor or jar) to look for modules at.- Returns:
 thisfor convenience (chained calls)
 
- 
getCollectedModules
@NotNull public Collection<ModulesMiner.ModuleHandle> getCollectedModules()
 
- 
loadModuleHandle
@NotNull public ModulesMiner.ModuleHandle loadModuleHandle(@NotNull IFile file)
Attempts to load module descriptor from file. UpdatesgetCollectedModules()collection. NOTE: single file could trigger more than one module loaded (e.g. lang.mpl loads generators), returned value is the 'primary' module, i.e. language. Other loaded modules are available ingetCollectedModules()Note, loading a file with language module not necessarily triggers loading of respective generators, only language source module would pick generator modules up. Deployed language doesn't load generators. Please do not use this method, it gonna fade away. With few modules coming from the same file, its API is not handy.- Parameters:
 file- descriptor file to parse for module information- Returns:
 - handle for descriptor loaded from file
 
 
- 
getSourceDescriptorFile
@Nullable public static IFile getSourceDescriptorFile(@NotNull IFile deploymentFile, @NotNull DeploymentDescriptor deploymentDescriptor)
- Parameters:
 deploymentFile- -- the path to deployment descriptor, expected to reside in a jar, and end withSLASH_META_INF_MODULE_XML
 
- 
saveHandle
public void saveHandle(@NotNull ModulesMiner.ModuleHandle handle, ModelOutputStream stream) throws IOException
- Throws:
 IOException
 
- 
loadHandle
public ModulesMiner.ModuleHandle loadHandle(ModelInputStream stream) throws IOException
- Throws:
 IOException
 
 - 
 
 -