From b6a9f76938f0ff4bc73c98b37426bb4e38a6cdb8 Mon Sep 17 00:00:00 2001 From: Sebastian Zarnekow Date: Fri, 8 Dec 2017 17:17:33 +0100 Subject: [PATCH] Fixed regression in Xtext generator for type names --- .../xtext/generator/model/TypeReference.xtend | 14 ++++++--- .../xtext/generator/model/TypeReference.java | 31 ++++++++++++++----- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/TypeReference.xtend b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/TypeReference.xtend index e7311bb9e..0820df239 100644 --- a/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/TypeReference.xtend +++ b/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/model/TypeReference.xtend @@ -156,10 +156,16 @@ class TypeReference { new QualifiedClassName('org.eclipse.emf.ecore', clazz.name) } } else { - val genClass = GenModelUtil2.getGenClass(clazz, resourceSet) - val packageName = genClass.genPackage.getInterfacePackageName(); - new QualifiedClassName(packageName, - genClass.interfaceName) + if (clazz.instanceTypeName !== null) { + val itn = clazz.instanceTypeName; + new QualifiedClassName(itn.substring(0, itn.lastIndexOf('.')), + itn.substring(itn.lastIndexOf(".") + 1).replace("$", ".")) + } else { + val genClass = GenModelUtil2.getGenClass(clazz, resourceSet) + val packageName = genClass.genPackage.getInterfacePackageName(); + new QualifiedClassName(packageName, + genClass.interfaceName) + } } } diff --git a/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/model/TypeReference.java b/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/model/TypeReference.java index 893eed302..35589a5ec 100644 --- a/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/model/TypeReference.java +++ b/org.eclipse.xtext.xtext.generator/xtend-gen/org/eclipse/xtext/xtext/generator/model/TypeReference.java @@ -266,14 +266,31 @@ public class TypeReference { } _xifexpression_1 = _xifexpression_2; } else { - TypeReference.QualifiedClassName _xblockexpression_1 = null; - { - final GenClass genClass = GenModelUtil2.getGenClass(clazz, resourceSet); - final String packageName = genClass.getGenPackage().getInterfacePackageName(); - String _interfaceName = genClass.getInterfaceName(); - _xblockexpression_1 = new TypeReference.QualifiedClassName(packageName, _interfaceName); + TypeReference.QualifiedClassName _xifexpression_3 = null; + String _instanceTypeName_1 = clazz.getInstanceTypeName(); + boolean _tripleNotEquals_1 = (_instanceTypeName_1 != null); + if (_tripleNotEquals_1) { + TypeReference.QualifiedClassName _xblockexpression_1 = null; + { + final String itn = clazz.getInstanceTypeName(); + String _substring = itn.substring(0, itn.lastIndexOf(".")); + int _lastIndexOf = itn.lastIndexOf("."); + int _plus = (_lastIndexOf + 1); + String _replace = itn.substring(_plus).replace("$", "."); + _xblockexpression_1 = new TypeReference.QualifiedClassName(_substring, _replace); + } + _xifexpression_3 = _xblockexpression_1; + } else { + TypeReference.QualifiedClassName _xblockexpression_2 = null; + { + final GenClass genClass = GenModelUtil2.getGenClass(clazz, resourceSet); + final String packageName = genClass.getGenPackage().getInterfacePackageName(); + String _interfaceName = genClass.getInterfaceName(); + _xblockexpression_2 = new TypeReference.QualifiedClassName(packageName, _interfaceName); + } + _xifexpression_3 = _xblockexpression_2; } - _xifexpression_1 = _xblockexpression_1; + _xifexpression_1 = _xifexpression_3; } _xifexpression = _xifexpression_1; }