blob: 47325508377e552e61e028d27fbe9d497e994ad1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package org.eclipse.e4.tools.emf.ui.internal.common.xml;
import java.io.IOException;
import java.io.StringWriter;
import org.eclipse.e4.tools.emf.ui.common.IModelResource;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
import org.eclipse.jface.text.Document;
public class EMFDocument {
private IModelResource modelResource;
private Document document;
public EMFDocument(IModelResource modelResource) {
this.modelResource = modelResource;
this.document = new Document();
updateFromEMF();
}
public void updateFromEMF() {
this.document.set(toXMI((EObject) modelResource.getRoot().get(0)));
}
public Document getDocument() {
return document;
}
private String toXMI(EObject root) {
XMIResourceImpl resource = new XMIResourceImpl();
resource.getContents().add(EcoreUtil.copy(root));
StringWriter writer = new StringWriter();
try {
resource.save(writer, null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return writer.toString();
}
}
|