[480502] Similar NPEs

Change-Id: Ic12e4ed99fbf748a147ed3c492d67ac9085bf20e
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/CustomTabFilterImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/CustomTabFilterImpl.java
index f3746d4..b74dbe0 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/CustomTabFilterImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/CustomTabFilterImpl.java
@@ -111,6 +111,12 @@
 		if (s != null && s.indexOf('.') != -1) {
 			return s;
 		}
+		
+		if (getTab() == null || getTab().getSheet() == null 
+				|| getTab().getSheet().getEditorGen() == null
+				|| getTab().getSheet().getEditorGen().getEditor() == null)
+			return s;
+		
 		return getTab().getSheet().getEditorGen().getEditor().getPackageName() + '.' + s;
 	}
 
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/ElementTypeImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/ElementTypeImpl.java
index 13e2aca..48ebf2c 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/ElementTypeImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/ElementTypeImpl.java
@@ -174,6 +174,12 @@
 
 	public String getUniqueIdentifier() {
 		String value = getUniqueIdentifierGen();
+		
+		if(getDiagramElement() == null || getDiagramElement().getDiagram() == null
+				|| getDiagramElement().getDiagram().getEditorGen() == null
+				|| getDiagramElement().getDiagram().getEditorGen().getPlugin() == null)
+			return value;
+		
 		if (GenCommonBaseImpl.isEmpty(value)) {
 			value = getDiagramElement().getDiagram().getEditorGen().getPlugin().getID() + '.' + getDiagramElement().getUniqueIdentifier();
 		}
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenApplicationImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenApplicationImpl.java
index af6fd20..e1b3674 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenApplicationImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenApplicationImpl.java
@@ -281,7 +281,8 @@
 
 	public String getID() {
 		String value = getIDGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		
+		if (GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getModelID().replace(" ", "") + "Application"; //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		return value;
@@ -310,7 +311,7 @@
 
 	public String getTitle() {
 		String value = getTitleGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		if (GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getModelID() + " Application";
 		}
 		return value;
@@ -339,7 +340,7 @@
 
 	public String getPackageName() {
 		String value = getPackageNameGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		if (GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".application"; //$NON-NLS-1$
 		}
 		return value;
@@ -433,7 +434,7 @@
 
 	public String getPerspectiveId() {
 		String value = getPerspectiveIdGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		if (GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + '.' + getEditorGen().getModelID() + "Perspective"; //$NON-NLS-1$
 		}
 		return value;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramImpl.java
index 24fb8ed..80f7489 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramImpl.java
@@ -1717,7 +1717,7 @@
 
 	public String getEditCommandsPackageName() {
 		String value = getEditCommandsPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".edit.commands";
 		}
 		return value;
@@ -1746,7 +1746,7 @@
 
 	public String getEditHelpersPackageName() {
 		String value = getEditHelpersPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".edit.helpers";
 		}
 		return value;
@@ -1775,7 +1775,7 @@
 
 	public String getEditPartsPackageName() {
 		String value = getEditPartsPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".edit.parts";
 		}
 		return value;
@@ -1804,7 +1804,7 @@
 
 	public String getEditPoliciesPackageName() {
 		String value = getEditPoliciesPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".edit.policies";
 		}
 		return value;
@@ -1833,7 +1833,7 @@
 
 	public String getPreferencesPackageName() {
 		String value = getPreferencesPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".preferences";
 		}
 		return value;
@@ -2051,7 +2051,7 @@
 
 	public String getEditingDomainID() {
 		String value = getEditingDomainIDGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPlugin().getID() + ".EditingDomain"; //$NON-NLS-1$
 		}
 		return value;
@@ -2472,7 +2472,7 @@
 
 	public String getProvidersPackageName() {
 		String value = getProvidersPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".providers";
 		}
 		return value;
@@ -2501,7 +2501,7 @@
 
 	public String getParsersPackageName() {
 		String value = getParsersPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".parsers";
 		}
 		return value;
@@ -2530,7 +2530,7 @@
 
 	public String getNotationViewFactoriesPackageName() {
 		String value = getNotationViewFactoriesPackageNameGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".view.factories";
 		}
 		return value;
@@ -3083,7 +3083,7 @@
 		if (!REUSE_ICON_VALUE.equalsIgnoreCase(value)) {
 			return value;
 		}
-		if (getDomainDiagramElement() != null) {
+		if (getDomainDiagramElement() != null && getEditorGen() != null) {
 			GenPackage domainMetaModel = getDomainDiagramElement().getGenPackage();
 			return "../" + getEditorGen().getDomainGenModel().getEditorPluginID() + "/icons/full/obj16/" + domainMetaModel.getPrefix() + "ModelFile.gif";
 		} else {
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramUpdaterImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramUpdaterImpl.java
index a9fd948..a7d9fe6 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramUpdaterImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenDiagramUpdaterImpl.java
@@ -291,7 +291,7 @@
 	
 	public String getUpdateCommandID() {
 		String value = getUpdateCommandIDGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		if (GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".updateDiagram"; //$NON-NLS-1$
 		}
 		return value;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorViewImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorViewImpl.java
index 370b25e..ec0711b 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorViewImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenEditorViewImpl.java
@@ -229,7 +229,7 @@
 
 	public String getPackageName() {
 		String value = getPackageNameGen();
-		if (value == null) {
+		if (value == null && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".part";
 		}
 		return value;
@@ -318,7 +318,7 @@
 	public String getIconPath() {
 		String value = getIconPathGen();
 		if (GenCommonBaseImpl.isEmpty(value)) {
-			if (getEditorGen().getDiagram() != null) {
+			if (getEditorGen() != null && getEditorGen().getDiagram() != null) {
 				return getEditorGen().getDiagram().getCreationWizardIconPath();
 			} else {
 				return createDefaultIconPath();
@@ -418,7 +418,7 @@
 	
 	public String getContextID() {
 		String value = getContextIDGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		if (GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".ui.diagramContext"; //$NON-NLS-1$
 		}
 		return value;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenExpressionProviderContainerImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenExpressionProviderContainerImpl.java
index 12133cf..6777336 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenExpressionProviderContainerImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenExpressionProviderContainerImpl.java
@@ -124,7 +124,7 @@
 	 */
 	public String getExpressionsPackageName() {
 		String value = getExpressionsPackageNameGen();
-		if(GenCommonBaseImpl.isEmpty(value)) {
+		if(GenCommonBaseImpl.isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".expressions"; //$NON-NLS-1$
 		}
 		return value;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenNavigatorImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenNavigatorImpl.java
index 67ef854..22ee698 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenNavigatorImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenNavigatorImpl.java
@@ -591,7 +591,7 @@
 
 	public String getContentExtensionID() {
 		String value = getContentExtensionIDGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPlugin().getID() + ".resourceContent";
 		}
 		return value;
@@ -679,7 +679,7 @@
 
 	public String getLinkHelperExtensionID() {
 		String value = getLinkHelperExtensionIDGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPlugin().getID() + ".navigatorLinkHelper";
 		}
 		return value;
@@ -709,7 +709,7 @@
 
 	public String getSorterExtensionID() {
 		String value = getSorterExtensionIDGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPlugin().getID() + ".navigatorSorter";
 		}
 		return value;
@@ -738,7 +738,7 @@
 
 	public String getActionProviderID() {
 		String value = getActionProviderIDGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPlugin().getID() + ".navigatorActionProvider";
 		}
 		return value;
@@ -1028,7 +1028,7 @@
 
 	public String getPackageName() {
 		String value = getPackageNameGen();
-		if (value == null) {
+		if (value == null && getEditorGen() != null) {
 			value = getEditorGen().getPackageNamePrefix() + ".navigator";
 		}
 		return value;
@@ -1078,7 +1078,7 @@
 	
 	public String getDomainContentExtensionID() {
 		String value = getDomainContentExtensionIDGen();
-		if (isEmpty(value)) {
+		if (isEmpty(value) && getEditorGen() != null) {
 			value = getEditorGen().getPlugin().getID() + ".domainResourceContent";
 		}
 		return value;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPluginImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPluginImpl.java
index e229aef..e47525b 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPluginImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPluginImpl.java
@@ -221,7 +221,7 @@
 		String value = getIDGen();
 		if (GenCommonBaseImpl.isEmpty(value)) {
 			String prefix = "design"; //$NON-NLS-1$
-			if (getEditorGen().getDomainGenModel() != null) {
+			if (getEditorGen() != null && getEditorGen().getDomainGenModel() != null) {
 				prefix = getEditorGen().getDomainGenModel().getModelPluginID();
 			}
 			if (prefix == null) {
@@ -443,7 +443,7 @@
 	}
 
 	private Set<String> getExpressionsRequiredPluginIDs() {
-		if(getEditorGen().getExpressionProviders() != null) {
+		if(getEditorGen() != null && getEditorGen().getExpressionProviders() != null) {
 			for (GenExpressionProviderBase nextProvider : getEditorGen().getExpressionProviders().getProviders()) {
 				if (nextProvider.getLanguage() == GenLanguage.OCL_LITERAL);
 				return Collections.singleton("org.eclipse.ocl.ecore"); //$NON-NLS-1$
@@ -475,7 +475,7 @@
 			HashSet<String> pluginIDs = new HashSet<String>();			
 			pluginIDs.add("org.eclipse.emf.validation"); //$NON-NLS-1$
 
-			if(getEditorGen().getAudits() != null) {
+			if(getEditorGen() != null && getEditorGen().getAudits() != null) {
 				// OCL constraint parser is part of separate feature/plugin: org.eclipse.emf.validation.ocl, need to refer to it explicitly 
 				for (GenAuditRule ar : getEditorGen().getAudits().getRules()) {
 					GenConstraint constraint = ar.getRule();
@@ -494,7 +494,7 @@
 	}
 	
 	private Set<String> getMetricsRequiredPluginIDs() {
-		if(getEditorGen().getMetrics() != null) {
+		if(getEditorGen() != null && getEditorGen().getMetrics() != null) {
 			HashSet<String> pluginIDs = new HashSet<String>();
 			collectGenPackagesRequiredPluginIDs(getEditorGen().getMetrics().getAllTargetedModelPackages(), pluginIDs);
 			return pluginIDs;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPropertySheetImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPropertySheetImpl.java
index d14b15c..26f9896 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPropertySheetImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GenPropertySheetImpl.java
@@ -183,7 +183,7 @@
 
 	public String getPackageName() {
 		String name = getPackageNameGen();
-		if (name == null || name.trim().length() == 0) {
+		if (name == null || name.trim().length() == 0 && getEditorGen() != null) {
 			return getEditorGen().getPackageNamePrefix() + ".sheet";
 		}
 		return name;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/PaletteImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/PaletteImpl.java
index 5ddfd01..f8bf135 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/PaletteImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/PaletteImpl.java
@@ -185,7 +185,7 @@
 
 	public String getPackageName() {
 		String value = getPackageNameGen();
-		if (GenCommonBaseImpl.isEmpty(value)) {
+		if (GenCommonBaseImpl.isEmpty(value) && getDiagram() != null && getDiagram().getEditorGen() != null) {
 			value = getDiagram().getEditorGen().getEditor().getPackageName();
 		}
 		return value;
diff --git a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/TypeTabFilterImpl.java b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/TypeTabFilterImpl.java
index 7cc3ebd..67e0f08 100644
--- a/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/TypeTabFilterImpl.java
+++ b/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/TypeTabFilterImpl.java
@@ -121,7 +121,8 @@
 		result.addAll(getTypes());
 		if (getGeneratedTypes().size() > 0) {
 			for (GeneratedType nextGeneratedType : getGeneratedTypes()) {
-				if (nextGeneratedType == GeneratedType.ABSTRACT_NAVIGATOR_ITEM_LITERAL) {
+				if (getTab() != null && getTab().getSheet() != null && getTab().getSheet().getEditorGen() != null 
+						&& nextGeneratedType == GeneratedType.ABSTRACT_NAVIGATOR_ITEM_LITERAL) {
 					GenNavigator navigator = getTab().getSheet().getEditorGen().getNavigator();
 					if (navigator != null) {
 						result.add(navigator.getAbstractNavigatorItemQualifiedClassName());