protected ResourceSet cloneResourceSet(final ResourceSet rs) { final XtextResourceSet result = new XtextResourceSet(); result.setPackageRegistry(rs.getPackageRegistry()); result.setResourceFactoryRegistry(rs.getResourceFactoryRegistry()); result.setURIConverter(rs.getURIConverter()); if ((rs instanceof XtextResourceSet)) { result.setClasspathURIContext(((XtextResourceSet)rs).getClasspathURIContext()); result.setClasspathUriResolver(((XtextResourceSet)rs).getClasspathUriResolver()); } return result; }
@Override public Resource createResource(URI uri) { synchronized (lock) { return super.createResource(uri); } }
@Override public EList<Resource> getResources() { return super.getResources(); }
private XtextResourceSet newResourceSetWithUTF8Encoding() { XtextResourceSet result = resourceSetProvider.get(); result.setClasspathURIContext(classpathUriContext); result.getLoadOptions().put(XtextResource.OPTION_ENCODING, StandardCharsets.UTF_8.name()); return result; }
public void setClasspathURIContext(Object class1) { final XtextResourceSet resourceSet = new XtextResourceSet(); resourceSet.setClasspathURIContext(class1); setResourceSetProvider(new Provider<ResourceSet>() { public ResourceSet get() { return resourceSet; } }); }
protected XtextResource doGetResource(InputStream in, URI uri) throws Exception { XtextResourceSet rs = get(XtextResourceSet.class); rs.setClasspathURIContext(getClass()); XtextResource resource = (XtextResource) getResourceFactory().createResource(uri); rs.getResources().add(resource); resource.load(in, null); if (resource instanceof LazyLinkingResource) { ((LazyLinkingResource) resource).resolveLazyCrossReferences(CancelIndicator.NullImpl); } else { EcoreUtil.resolveAll(resource); } return resource; }
Injector injector = new MappingStandaloneSetup().createInjectorAndDoEMFRegistration(); XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); while ((entry = zis.getNextEntry()) != null) { if (entry.getName().endsWith(".mapping")) { Resource mappingResource = resourceSet.createResource(URI.createURI("fake:/" + entry.getName())); mappingResource.load(new ByteArrayInputStream(copyStream(zis, entry)),resourceSet.getLoadOptions()); } else { Resource resource = resourceSet.createResource(URI.createURI("fake:/" + entry.getName())); resource.load(new ByteArrayInputStream(copyStream(zis, entry)), resourceSet.getLoadOptions()); for (Resource resource : resourceSet.getResources()) { if (resource.getContents().get(0) instanceof MappingModel) { mappingModels.add((MappingModel)resource.getContents().get(0));
protected ZenModel getLibraryModel(org.eclipse.emf.common.util.URI modelURI) { new XtextDslStandaloneSetup().createInjectorAndDoEMFRegistration(); XtextResourceSet resourceSet = new XtextResourceSet(); resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); org.eclipse.emf.ecore.resource.Resource resource = resourceSet.createResource(modelURI); try { InputStream stream = RestApiXtextPlugin.class.getResourceAsStream("/libraries/" + modelURI.lastSegment()); //$NON-NLS-1$ resource.load(stream, null); } catch (IOException e) { throw new RuntimeException(e); } return (ZenModel) resource.getContents().get(0); }
public ClassLoader getClassLoader(ResourceSet resourceSet) { if (resourceSet instanceof XtextResourceSet) { XtextResourceSet xtextResourceSet = (XtextResourceSet) resourceSet; Object ctx = xtextResourceSet.getClasspathURIContext(); if (ctx != null) { if (ctx instanceof Class<?>) { return ((Class<?>)ctx).getClassLoader(); } if (!(ctx instanceof ClassLoader)) { return ctx.getClass().getClassLoader(); } return (ClassLoader) ctx; } } return classLoader; }
public Model extract(final String modelName) { FunctionblockPackage.eINSTANCE.eClass(); InformationModelPackage.eINSTANCE.eClass(); ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(this.zipFile)); ZipEntry entry = null; FunctionblockStandaloneSetup.doSetup(); Injector injector = new InformationModelStandaloneSetup().createInjectorAndDoEMFRegistration(); XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); Resource infoModelResource = null; try { while ((entry = zis.getNextEntry()) != null) { Resource resource = resourceSet.createResource(URI.createURI("fake:/" + entry.getName())); resource.load(new ByteArrayInputStream(copyStream(zis, entry)), resourceSet.getLoadOptions()); if (((Model) resource.getContents().get(0)).getName().equals(modelName)) { infoModelResource = resource; } } } catch (Exception ex) { ex.printStackTrace(); } EcoreUtil2.resolveAll(resourceSet); return (Model)infoModelResource.getContents().get(0); }
XtextResourceSet resourceSet = resourceSetProvider.get(); if (classLoader != null) { resourceSet.setClasspathURIContext(classLoader); } else { final ClassLoader classLoaderToUse = requestor == null ? getClass().getClassLoader() : requestor.getClass().getClassLoader(); resourceSet.setClasspathURIContext(classLoaderToUse);
public static ResourceSet getINSTANCE() { return new XtextResourceSet(); } }
private void exportXMI(String absuloteTargetFolderPath) { // change MyLanguage with your language name Injector injector = new MyLanguageStandaloneSetup() .createInjectorAndDoEMFRegistration(); XtextResourceSet resourceSet = injector .getInstance(XtextResourceSet.class); // .ext ist the extension of the model file String inputURI = "file:///" + absuloteTargetFolderPath + "/MyFile.ext"; String outputURI = "file:///" + absuloteTargetFolderPath + "/MyFile.xmi"; URI uri = URI.createURI(inputURI); Resource xtextResource = resourceSet.getResource(uri, true); EcoreUtil.resolveAll(xtextResource); Resource xmiResource = resourceSet .createResource(URI.createURI(outputURI)); xmiResource.getContents().add(xtextResource.getContents().get(0)); try { xmiResource.save(null); } catch (IOException e) { e.printStackTrace(); } }
public ResourceSet get(IProject project) { XtextResourceSet set = resourceSetProvider.get(); IJavaProject javaProject = JavaCore.create(project); if (javaProject != null && javaProject.exists()) { set.getURIConverter().getURIMap().putAll(computePlatformURIMap(javaProject)); set.setClasspathURIContext(javaProject); set.setClasspathUriResolver(new JdtClasspathUriResolver()); } return set; }
/** * creates a fresh resource set with the given resources * * @param resources - pairs of file names and their contents * @return a ResourceSet, containing the given resources. * @throws IOException if the resource loading fails */ public ResourceSet resourceSet(@SuppressWarnings("unchecked") Pair<String,? extends CharSequence> ...resources ) throws IOException { XtextResourceSet result = newResourceSetWithUTF8Encoding(); FileProjectConfig projectConfig = new FileProjectConfig(new File(workspaceRoot,PROJECT_NAME), PROJECT_NAME); projectConfig.addSourceFolder("src"); ProjectConfigAdapter.install(result, projectConfig); for (Pair<String, ? extends CharSequence> entry : resources) { URI uri = copyToWorkspace(getSourceFolderPath()+"/"+entry.getKey(), entry.getValue()); Resource resource = result.createResource(uri); if (resource == null) throw new IllegalStateException("Couldn't create resource for URI "+uri+". Resource.Factory not registered?"); resource.load(result.getLoadOptions()); } return result; }
public String format(final String xtendCode) { try { final XtextResourceSet resourceSet = new XtextResourceSet(); Resource _createResource = this.resourceFactory.createResource(URI.createURI("synthetic://to-be-formatted.xtend")); final XtextResource resource = ((XtextResource) _createResource); EList<Resource> _resources = resourceSet.getResources(); _resources.add(resource); StringInputStream _stringInputStream = new StringInputStream(xtendCode); resource.load(_stringInputStream, CollectionLiterals.<Object, Object>emptyMap()); final ITextRegionAccess regionAccess = this.regionAccessBuilder.get().forNodeModel(resource).create(); FormatterRequest _formatterRequest = new FormatterRequest(); final Procedure1<FormatterRequest> _function = (FormatterRequest it) -> { it.setAllowIdentityEdits(false); it.setTextRegionAccess(regionAccess); it.setPreferences(TypedPreferenceValues.castOrWrap(this.cfgProvider.getPreferenceValues(resource))); }; FormatterRequest request = ObjectExtensions.<FormatterRequest>operator_doubleArrow(_formatterRequest, _function); List<ITextReplacement> replacements = this.formatter.format(request); return regionAccess.getRewriter().renderToString(replacements); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }
/** * Create a clone of the original grammar. The clone will not refer to a node model. */ private Grammar cloneGrammarIntoNewResourceSet(final Grammar original) { final Resource originalResource = original.eResource(); XtextResourceSet _xtextResourceSet = new XtextResourceSet(); final XtextResourceSet clonedResourceSet = EcoreUtil2.<XtextResourceSet>clone(_xtextResourceSet, originalResource.getResourceSet()); final Resource clonedResource = clonedResourceSet.getResource(originalResource.getURI(), false); EObject _head = IterableExtensions.<EObject>head(clonedResource.getContents()); return ((Grammar) _head); }
// "workspace" is a string that contains the path to the workspace containing the DSL program. new org.eclipse.emf.mwe.utils.StandaloneSetup().setPlatformUri(workspace); Injector injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration(); XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE); // "DSLProgram" is a string that contains the path to the file of the DSL program relative to the workspace set above. Resource resource = resourceSet.getResource(URI.createURI("platform:/resource/" + DSLProgram), true); Model model = (Model) resource.getContents().get(0);
@Override public Resource getResource(URI uri, boolean loadOnDemand) { synchronized (lock) { return super.getResource(uri, loadOnDemand); } }
private URI resolveClasspathURI(URI uri) { return getClasspathUriResolver().resolve(getClasspathURIContext(), uri); }