public Resource createResource(URI uri) { final XMIResource resource = (XMIResource) super.createResource(uri); final Map<Object, Object> defaultLoadOptions = resource.getDefaultLoadOptions(); defaultLoadOptions.put(XMLResource.OPTION_EXTENDED_META_DATA, getExtendedMetaData()); defaultLoadOptions.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE); defaultLoadOptions.put( XMLResource.OPTION_RESOURCE_HANDLER, new PartitioncontainmentResourceHandler()); return resource; }
@Override public Resource createResource(URI uri) { XMIResource resource = new EntityRelationResourceImpl(uri); Map<Object, Object> saveOptions = resource.getDefaultSaveOptions(); saveOptions.put(XMLResource.OPTION_CONFIGURATION_CACHE, Boolean.TRUE); saveOptions.put(XMLResource.OPTION_USE_CACHED_LOOKUP_TABLE, lookupTable); Map<Object, Object> loadOptions = resource.getDefaultLoadOptions(); loadOptions.put(XMLResource.OPTION_DEFER_ATTACHMENT, Boolean.TRUE); loadOptions.put(XMLResource.OPTION_DEFER_IDREF_RESOLUTION, Boolean.TRUE); loadOptions.put(XMLResource.OPTION_USE_DEPRECATED_METHODS, Boolean.FALSE); loadOptions.put(XMLResource.OPTION_USE_PARSER_POOL, parserPool); loadOptions.put(XMLResource.OPTION_USE_XML_NAME_TO_FEATURE_MAP, nameToFeatureMap); return resource; }
@Test public void testSerializationBreakURIs() throws IOException { StringWriter writer = new StringWriter(); bRes.save(writer, Collections.EMPTY_MAP); writer.flush(); String fileContent = writer.toString(); System.out.println(fileContent); assertTrue( "We should have a src/ in the serialization as we are refering to a.ecore which is in a src folder.", fileContent.indexOf("src") > -1); }
@Before public void setUp() throws Exception { EcoreResourceFactoryImpl resFactory = new EcoreResourceFactoryImpl(); set.getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", resFactory); aRes = (XMIResource) set.createResource( URI.createPlatformResourceURI("/myProject/main/src/some/package/a.ecore", true)); InputStream stream = new ByteArrayInputStream(aResContent.getBytes("US-ASCII")); aRes.load(stream, set.getLoadOptions()); stream.close(); bRes = (XMIResource) set.createResource(URI.createPlatformResourceURI("/myProject/model/b.ecore", true)); stream = new ByteArrayInputStream(bResContent.getBytes("US-ASCII")); bRes.load(stream, set.getLoadOptions()); stream.close(); }
private void fromXMItoXML(URI inputModelURI, URI outputModelURI, ResourceSet resourceSet) throws IOException { // overwrite load options Map<Object, Object> loadOptionsMap = resourceSet.getLoadOptions(); loadOptionsMap.put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); loadOptionsMap.put(XMIResource.OPTION_SUPPRESS_DOCUMENT_ROOT, Boolean.TRUE); // set save options Map<Object, Object> saveOptionsMap = new HashMap<Object, Object>(); saveOptionsMap.put(XMIResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); saveOptionsMap.put(XMIResource.OPTION_SUPPRESS_DOCUMENT_ROOT, Boolean.TRUE); // load input model from file XMIResource inputResource = (XMIResource) resourceSet.getResource(inputModelURI, true); // create output model resource by copying contents of input model Resource outputResource = resourceSet.createResource(outputModelURI); XMItoXMLCopier xmiToXmlCopier = new XMItoXMLCopier("http://example.com/example-with-anyfeature"); outputResource.getContents().add(xmiToXmlCopier.copy(inputResource.getContents().get(0))); // save output model to file outputResource.save(saveOptionsMap); }