Commit 8a6d6e3f authored by Martti Käärik's avatar Martti Käärik
Browse files

imported packages should use qualified names

parent 3b846170
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -6,9 +6,13 @@ import org.eclipse.xtext.naming.QualifiedName;
public class TDLQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl{
	@Override
	public String toString(QualifiedName qualifiedName) {
		// TODO not sure why this was for but e.g. imported packages should use qualified names
		/*
		if (qualifiedName == null)
			throw new IllegalArgumentException("Qualified name cannot be null");
		return qualifiedName.getLastSegment().toString();
		*/
		return super.toString(qualifiedName);
	}

}
+24 −0
Original line number Diff line number Diff line
package org.etsi.mts.tdl.scoping;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
import org.eclipse.xtext.naming.QualifiedName;
import org.etsi.mts.tdl.Element;
import org.etsi.mts.tdl.NamedElement;

public class TdlQualifiedNameProvider extends DefaultDeclarativeQualifiedNameProvider {
	@Override
	public QualifiedName getFullyQualifiedName(EObject obj) {
		if (obj instanceof NamedElement) {
			String qNameStr = ((NamedElement) obj).getQualifiedName();
			QualifiedName qName = QualifiedName.create(qNameStr.split("::"));
			return qName;
			
		} else if (obj instanceof Element) {
			String name = ((Element) obj).getName();
			if (name != null)
				return QualifiedName.create(name);
		}
		return super.getFullyQualifiedName(obj);
	}
}
+5 −0
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@ package org.etsi.mts.tdl;

import org.eclipse.xtext.conversion.IValueConverterService;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.IQualifiedNameProvider;
import org.etsi.mts.tdl.scoping.TDLQualifiedNameConverter;
import org.etsi.mts.tdl.scoping.TdlQualifiedNameProvider;

/**
 * Use this class to register components to be used at runtime / without the Equinox extension registry.
@@ -19,4 +21,7 @@ public class TDLtxRuntimeModule extends AbstractTDLtxRuntimeModule {
	public Class<? extends IQualifiedNameConverter> bindIQualifiedNameConverter() {
		return TDLQualifiedNameConverter.class;
	}
	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
		return TdlQualifiedNameProvider.class;
	}
}
+5 −0
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@ package org.etsi.mts.tdl;

import org.eclipse.xtext.conversion.IValueConverterService;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.IQualifiedNameProvider;
import org.etsi.mts.tdl.scoping.TDLQualifiedNameConverter;
import org.etsi.mts.tdl.scoping.TdlQualifiedNameProvider;

/**
 * Use this class to register components to be used at runtime / without the Equinox extension registry.
@@ -19,4 +21,7 @@ public class TDLtxiRuntimeModule extends AbstractTDLtxiRuntimeModule {
	public Class<? extends IQualifiedNameConverter> bindIQualifiedNameConverter() {
		return TDLQualifiedNameConverter.class;
	}
	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
		return TdlQualifiedNameProvider.class;
	}
}