Commits (3)
package org.etsi.mts.tdl.scoping;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.QualifiedName;
public class TDLQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl{
@Override
public String toString(QualifiedName qualifiedName) {
if (qualifiedName == null)
throw new IllegalArgumentException("Qualified name cannot be null");
return qualifiedName.getLastSegment().toString();
}
}
......@@ -272,6 +272,9 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider {
if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof StructuredDataType) {
IScope scope = Scopes.scopeFor(((StructuredDataType)((DataElementMapping)context.eContainer()).getMappableDataElement()).allMembers());
return scope;
} else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof StructuredDataInstance) {
IScope scope = Scopes.scopeFor(((StructuredDataType) ((StructuredDataInstance)((DataElementMapping)context.eContainer()).getMappableDataElement()).getDataType()).allMembers());
return scope;
} else if (((DataElementMapping)context.eContainer()).getMappableDataElement() instanceof Action) {
IScope scope = Scopes.scopeFor(((Action)((DataElementMapping)context.eContainer()).getMappableDataElement()).getFormalParameter());
return scope;
......
package org.etsi.mts.tdl.transform;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.TreeMap;
import java.util.function.Predicate;
......@@ -71,11 +73,13 @@ public abstract class AbstractTranslator {
public String cleanName(String name) {
//TODO: use keywords filter?
if (name.equals("Message") || name.equals("Time") || name.equals("type") || name.equals("name") || name.equals("instance") || name.equals("size") ) {
List<String> keywords = List.of("Message", "Time", "Type", "type", "name", "instance", "size", "component");
if (keywords.contains(name)) {
name = "^"+name;
}
name = name.replaceAll("-", "_")
.replaceAll(" ", "_")
.replaceAll(":", "_")
.replaceAll("\\.", "_");
return name;
}
......
......@@ -4,6 +4,8 @@
package org.etsi.mts.tdl;
import org.eclipse.xtext.conversion.IValueConverterService;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.etsi.mts.tdl.scoping.TDLQualifiedNameConverter;
/**
* Use this class to register components to be used at runtime / without the Equinox extension registry.
......@@ -13,4 +15,8 @@ public class TDLtxRuntimeModule extends AbstractTDLtxRuntimeModule {
public Class<? extends IValueConverterService> bindIValueConverterService() {
return EString2XtextConverter.class;
}
public Class<? extends IQualifiedNameConverter> bindIQualifiedNameConverter() {
return TDLQualifiedNameConverter.class;
}
}