Browse Source

fixed bug in new generator model creation wizard where namespace is set

dominikjetzen@gmail.com 12 years ago
parent
commit
336d2057c4

+ 2 - 2
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/SGenRuntimeModule.java

@@ -11,8 +11,8 @@
 package org.yakindu.sct.generator.genmodel;
 
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
-import org.eclipse.xtext.naming.SimpleNameProvider;
 import org.eclipse.xtext.serializer.tokens.ICrossReferenceSerializer;
+import org.yakindu.sct.generator.genmodel.naming.GenModelQualifiedNameProvider;
 import org.yakindu.sct.generator.genmodel.serializer.SGenCrossReferenceSerializer;
 
 /**
@@ -24,7 +24,7 @@ public class SGenRuntimeModule extends
 		org.yakindu.sct.generator.genmodel.AbstractSGenRuntimeModule {
 	@Override
 	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
-		return SimpleNameProvider.class;
+		return GenModelQualifiedNameProvider.class;
 	}
 
 	public Class<? extends ICrossReferenceSerializer> bindICrossReferenceSerializer() {

+ 37 - 0
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/naming/GenModelQualifiedNameProvider.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+
+package org.yakindu.sct.generator.genmodel.naming;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.naming.SimpleNameProvider;
+import org.yakindu.sct.model.sgraph.Statechart;
+/**
+ * 
+ * @author jetzen
+ *	
+ */
+public class GenModelQualifiedNameProvider extends SimpleNameProvider {
+
+	@Override
+	public QualifiedName getFullyQualifiedName(EObject obj) {
+		if (obj instanceof Statechart) {
+			Statechart statechart = (Statechart) obj;
+			if (statechart.getNamespace() != null) {
+				return QualifiedName.create(statechart.getNamespace(),
+						statechart.getName());
+			}
+		}
+		return super.getFullyQualifiedName(obj);
+	}
+
+}

+ 9 - 2
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/serializer/SGenCrossReferenceSerializer.java

@@ -12,11 +12,14 @@ package org.yakindu.sct.generator.genmodel.serializer;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.nodemodel.INode;
 import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
 import org.eclipse.xtext.serializer.tokens.CrossReferenceSerializer;
 import org.yakindu.sct.model.sgraph.Statechart;
 
+import com.google.inject.Inject;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
@@ -24,13 +27,17 @@ import org.yakindu.sct.model.sgraph.Statechart;
  */
 @SuppressWarnings("restriction")
 public class SGenCrossReferenceSerializer extends CrossReferenceSerializer {
-
+	
+	@Inject 
+	private IQualifiedNameProvider provider;
+	
 	@Override
 	public String serializeCrossRef(EObject semanticObject,
 			CrossReference crossref, EObject target, INode node, Acceptor errors) {
 		// for statechart crossreferences, we do not want to check the scope
 		if (target instanceof Statechart) {
-			return ((Statechart) target).getName();
+			return provider.getFullyQualifiedName(target).toString();
+			
 		}
 		return super.serializeCrossRef(semanticObject, crossref, target, node,
 				errors);