blob: 47325508377e552e61e028d27fbe9d497e994ad1 [file] [log] [blame]
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();
}
}