protected final void collectModels( IFile dir, String package_, String relativePath, Map<String, String> options, Collection<SModel> models) { if (FileSystem.getInstance().isFileIgnored(dir.getName())) return; if (!dir.isDirectory()) return; List<IFile> files = dir.getChildren(); options.put(ModelFactory.OPTION_PACKAGE, package_); for (IFile file : files) { String fileName = file.getName(); String extension = FileUtil.getExtension(fileName); if (extension == null) continue; ModelFactory modelFactory = PersistenceFacade.getInstance().getModelFactory(extension); if (modelFactory == null || file.isDirectory()) continue; FileDataSource source = new FileDataSource(file, this); options.put(ModelFactory.OPTION_RELPATH, combinePath(relativePath, fileName)); String fileNameWE = FileUtil.getNameWithoutExtension(fileName); options.put( ModelFactory.OPTION_MODELNAME, package_ != null ? (package_.isEmpty() ? fileNameWE : package_ + "." + fileNameWE) : null); try { SModel model = modelFactory.load(source, Collections.unmodifiableMap(options)); ((SModelBase) model).setModelRoot(this); models.add(model); } catch (UnsupportedDataSourceException ex) { /* model factory registration problem: ignore */ } } options.put(ModelFactory.OPTION_RELPATH, relativePath); for (FolderModelFactory factory : PersistenceRegistry.getInstance().getFolderModelFactories()) { for (DataSource dataSource : factory.createDataSources(this, dir)) { SModel model = factory.load(dataSource, Collections.unmodifiableMap(options)); ((SModelBase) model).setModelRoot(this); models.add(model); } } for (IFile childDir : files) { if (childDir.isDirectory()) { String name = childDir.getName(); String innerPackage = package_ != null && JavaNameUtil.isJavaIdentifier(name) ? (package_.isEmpty() ? name : package_ + "." + name) : null; String innerPath = combinePath(relativePath, name); collectModels(childDir, innerPackage, innerPath, options, models); } } }
public static Object propertyMacro_GetPropertyValue_2990235398087273707( final PropertyMacroContext _context) { SNode irb = SNodeOperations.getNodeAncestor( SLinkOperations.getTarget( _context.getNode(), MetaAdapterFactory.getReferenceLink( 0x982eb8df2c964bd7L, 0x996311712ea622e5L, 0x7c8b08a50a39c6c7L, 0x7c8b08a50a39c6c8L, "declaration")), MetaAdapterFactory.getConcept( 0x982eb8df2c964bd7L, 0x996311712ea622e5L, 0x7c8b08a50a39c6bdL, "jetbrains.mps.lang.resources.structure.OldIconBundle"), false, false); return JavaNameUtil.packageName(SNodeOperations.getModel(irb)) + "." + OldIconBundle__BehaviorDescriptor.getJavaName_id7Mb2akaesvf.invoke(irb); }