blob: 2da7b65b788e4da51f36c696f3446683b24b4689 [file] [log] [blame]
package org.eclipse.epf.toolbox.batch.commands;
import java.io.File;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.epf.export.xml.services.ExportXMLData;
import org.eclipse.epf.export.xml.services.ExportXMLService;
import org.eclipse.epf.library.services.SafeUpdateController;
import org.eclipse.epf.toolbox.batch.C;
import org.eclipse.epf.toolbox.batch.EbcExeReply;
import org.eclipse.epf.uma.MethodLibrary;
import org.w3c.dom.Element;
public class EbcExportXml extends EpfBatchCommandImpl {
public void parse(Element element) {
super.parse(element);
setAttribute(C.XmlExportFilePath, element.getAttribute(C.XmlExportFilePath));
}
public EbcExeReply execute() {
traceBeforeExcute();
final EbcExeReply reply = new EbcExeReply();
try {
executeBody(reply);
} catch (Exception e) {
reply.addStatus(Status.ERROR, e.getMessage(), e);
}
traceAfterExcute(reply);
return reply;
}
public void executeBody(EbcExeReply reply) {
String relPath = getAttribute(C.XmlExportFilePath);
MethodLibrary lib = getMgr().getCurrentBaseLib();
File file = new File(lib.eResource().getURI().toFileString());
file = file.getParentFile().getParentFile();
String absPath = getMgr().getRootPath() + File.separator + relPath;
File exportFile = new File(absPath);
final ExportXMLData data = new ExportXMLData();
data.setExportType(ExportXMLData.EXPORT_METHOD_LIBRARY);
data.setXMLFile(exportFile.getAbsolutePath());
SafeUpdateController.syncExec(new Runnable() {
public void run() {
(new ExportXMLService(data)).doExport(new NullProgressMonitor());
}
});
}
}