diff options
author | Ansgar Radermacher | 2013-10-08 13:39:13 +0000 |
---|---|---|
committer | Ansgar Radermacher | 2013-10-08 13:39:13 +0000 |
commit | 5d054ef5141e8dbf2d60748c37a81ddca9fc82d8 (patch) | |
tree | c14935f2b7cc8811d401d60d3ccfd2df8ed0ca57 /extraplugins | |
parent | 0a1d35d42a137cdf21c4ed046b28f4e793c4abae (diff) | |
download | org.eclipse.papyrus-5d054ef5141e8dbf2d60748c37a81ddca9fc82d8.tar.gz org.eclipse.papyrus-5d054ef5141e8dbf2d60748c37a81ddca9fc82d8.tar.xz org.eclipse.papyrus-5d054ef5141e8dbf2d60748c37a81ddca9fc82d8.zip |
- Avoid NPE in ModelElementsCreator
- Support code generation for packages
Diffstat (limited to 'extraplugins')
2 files changed, 10 insertions, 9 deletions
diff --git a/extraplugins/codegen/org.eclipse.papyrus.acceleo/src/org/eclipse/papyrus/acceleo/ModelElementsCreator.java b/extraplugins/codegen/org.eclipse.papyrus.acceleo/src/org/eclipse/papyrus/acceleo/ModelElementsCreator.java index 35ebc2dea90..63180eb5ace 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.acceleo/src/org/eclipse/papyrus/acceleo/ModelElementsCreator.java +++ b/extraplugins/codegen/org.eclipse.papyrus.acceleo/src/org/eclipse/papyrus/acceleo/ModelElementsCreator.java @@ -237,7 +237,9 @@ abstract public class ModelElementsCreator { * @throws CoreException
*/
protected void createPackage(IContainer packageContainer, IProgressMonitor monitor, Package pkg) throws CoreException {
- monitor.subTask("generate package " + pkg.getQualifiedName()); //$NON-NLS-1$
+ if (monitor != null) {
+ monitor.subTask("generate package " + pkg.getQualifiedName()); //$NON-NLS-1$
+ }
if(!isRoot(pkg) && !noCodeGen(pkg)) {
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java index 0c4d7c9fbc4..1945de142b2 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java @@ -37,7 +37,7 @@ import org.eclipse.papyrus.infra.core.Activator; import org.eclipse.papyrus.infra.emf.utils.BusinessModelResolver; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; -import org.eclipse.uml2.uml.Classifier; +import org.eclipse.uml2.uml.PackageableElement; /** * <b><u>SyncURI Handler</u></b> @@ -102,11 +102,10 @@ public class GenerateCodeHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { - if(selectedEObj instanceof Classifier) { - Classifier classifier = (Classifier)selectedEObj; + if(selectedEObj instanceof PackageableElement) { + PackageableElement pe = (PackageableElement)selectedEObj; - - URI uri = classifier.eResource().getURI(); + URI uri = pe.eResource().getURI(); // URIConverter uriConverter = resource.getResourceSet().getURIConverter(); IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); @@ -115,16 +114,16 @@ public class GenerateCodeHandler extends AbstractHandler { } IProject modelProject = root.getProject(uri.segment(1)); if(modelProject.exists()) { - String name = classifier.getName(); + String name = pe.getName(); // get the container for the current element String headerSuffix = CppCodeGenUtils.getHeaderSuffix(); String bodySuffix = CppCodeGenUtils.getBodySuffix(); AcceleoDriver.clearErrors(); CppModelElementsCreator mec = new CppModelElementsCreator(modelProject); - IContainer srcPkg = mec.getContainer(classifier); + IContainer srcPkg = mec.getContainer(pe); try { - mec.createPackageableElement(srcPkg, null, classifier); + mec.createPackageableElement(srcPkg, null, pe); if (AcceleoDriver.hasErrors()) { MessageDialog.openInformation(new Shell(), "Errors during code generation", //$NON-NLS-1$ |