blob: 6366756b96a4276f88fc5311aea1d066d2647377 [file] [log] [blame]
/*
* Copyright CEA LIST 2019
* The content is the property of CEA LIST.
*
* Initial API and implementation:
* Ansgar Radermacher
*/
package org.eclipse.papyrus.iotml.sna.codegen.handlers;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.papyrus.iotml.sna.codegen.CreateSNA;
import org.eclipse.papyrus.iotml.sna.codegen.CreateXML;
import org.eclipse.papyrus.iotml.sna.codegen.SensiNact;
import org.eclipse.papyrus.infra.tools.file.ProjectBasedFileAccess;
import org.eclipse.papyrus.iotml.sna.codegen.CreateXMLecore;
import org.eclipse.papyrus.uml.diagram.common.handlers.CmdHandler;
import org.eclipse.uml2.uml.Package;
public class SensiNactTransformation extends CmdHandler {
private static final String PROJ_PREFIX = "org.sensinact.gen."; //$NON-NLS-1$
protected Package selected;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
updateSelectedEObject();
Package model = (Package) selectedEObject;
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
String projectName = PROJ_PREFIX + model.getName();
IProject project = root.getProject(projectName);
if (project == null || !project.exists()) {
try {
project.create(null);
project.open(null);
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// CreateXMLecore.createXML(projectName);
ProjectBasedFileAccess pba = new ProjectBasedFileAccess(project);
CreateXML.createXML(pba, model);
CreateSNA.createSNA(pba, model);
pba.generateFile("test.sensinact", SensiNact.sensinact(model));
return null;
}
}