Browse Source

added null pointer checks

benjamin.schwertfeger@gmail.com 13 years ago
parent
commit
fb11fe78f0

+ 6 - 3
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/StateInjectionService.java

@@ -41,10 +41,13 @@ public class StateInjectionService extends
 	@Override
 	@Override
 	public void setFeatures(State original, StateSpecification rootAST) {
 	public void setFeatures(State original, StateSpecification rootAST) {
 		Scope localScope = SGraphFactory.eINSTANCE.createScope();
 		Scope localScope = SGraphFactory.eINSTANCE.createScope();
-		EList<Declaration> declarations = rootAST.getScope().getDeclarations();
-		localScope.getDeclarations().addAll(declarations);
 		original.getScopes().clear();
 		original.getScopes().clear();
-		original.getScopes().add(localScope);
+		if (rootAST.getScope() != null) {
+			EList<Declaration> declarations = rootAST.getScope()
+					.getDeclarations();
+			localScope.getDeclarations().addAll(declarations);
+			original.getScopes().add(localScope);
+		}
 	}
 	}
 
 
 	public boolean isServiceFor(EObject object) {
 	public boolean isServiceFor(EObject object) {

+ 3 - 1
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/StatechartInjectionService.java

@@ -42,7 +42,9 @@ public class StatechartInjectionService
 		EList<Scope> definitionScopes = rootAST.getScopes();
 		EList<Scope> definitionScopes = rootAST.getScopes();
 		original.getScopes().clear();
 		original.getScopes().clear();
 		original.setNamespace(rootAST.getNamespace());
 		original.setNamespace(rootAST.getNamespace());
-		original.getScopes().addAll(definitionScopes);
+		if (definitionScopes != null) {
+			original.getScopes().addAll(definitionScopes);
+		}
 	}
 	}
 
 
 	public EStructuralFeature getSourceFeature() {
 	public EStructuralFeature getSourceFeature() {

+ 12 - 2
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/services/TransitionInjectionService.java

@@ -12,8 +12,11 @@ package org.yakindu.sct.model.stext.resource.services;
 
 
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EObject;
+import org.yakindu.sct.model.sgraph.Effect;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.Trigger;
+import org.yakindu.sct.model.stext.stext.TransitionReaction;
 import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 
 
 import de.itemis.xtext.utils.gmf.resource.AbstractXtextMemberInjectionService;
 import de.itemis.xtext.utils.gmf.resource.AbstractXtextMemberInjectionService;
@@ -39,8 +42,15 @@ public class TransitionInjectionService
 
 
 	@Override
 	@Override
 	public void setFeatures(Transition original, TransitionSpecification rootAST) {
 	public void setFeatures(Transition original, TransitionSpecification rootAST) {
-		original.setTrigger(rootAST.getReaction().getTrigger());
-		original.setEffect(rootAST.getReaction().getEffect());
+		Trigger trigger = null;
+		Effect effect = null;
+		if (rootAST.getReaction() != null) {
+			TransitionReaction reaction = rootAST.getReaction();
+			trigger = reaction.getTrigger();
+			effect = reaction.getEffect();
+		}
+		original.setTrigger(trigger);
+		original.setEffect(effect);
 
 
 	}
 	}