protected void addSuperClass(final XtendClass xtendClass) { EObject xtendType = xtendClass; while (((!Objects.equal(xtendType, null)) && (xtendType instanceof XtendClass))) { { final XtendClass current = ((XtendClass) xtendType); EList<XAnnotation> _annotations = current.getAnnotations(); final Function1<XAnnotation, Boolean> _function = new Function1<XAnnotation, Boolean>() { public Boolean apply(final XAnnotation it) { return Boolean.valueOf(JnarioJvmModelInferrer.this.hasExtendsAnnotation(it)); } }; Iterable<XAnnotation> _filter = IterableExtensions.<XAnnotation>filter(_annotations, _function); final Function1<XAnnotation, XTypeLiteral> _function_1 = new Function1<XAnnotation, XTypeLiteral>() { public XTypeLiteral apply(final XAnnotation it) { XExpression _value = it.getValue(); return ((XTypeLiteral) _value); } }; Iterable<XTypeLiteral> _map = IterableExtensions.<XAnnotation, XTypeLiteral>map(_filter, _function_1); for (final XTypeLiteral extendedType : _map) { boolean _and = false; EList<JvmTypeReference> _implements = current.getImplements(); boolean _isEmpty = _implements.isEmpty(); if (!_isEmpty) { _and = false; } else { JvmType _type = extendedType.getType(); boolean _notEquals = (!Objects.equal(_type, null)); _and = _notEquals; } if (_and) { JvmType _type_1 = extendedType.getType(); JvmParameterizedTypeReference _createTypeRef = this._typeReferences.createTypeRef(_type_1); xtendClass.setExtends(_createTypeRef); return; } } EObject _eContainer = xtendType.eContainer(); xtendType = _eContainer; } } }