public List<Variable> variables(final XExpression ex) { List<Variable> _xblockexpression = null; { final PatternBody body = EcoreUtil2.<PatternBody>getContainerOfType(ex, PatternBody.class); TreeIterator<EObject> _eAllContents = ex.eAllContents(); Iterator<XExpression> _iterator = CollectionLiterals.<XExpression>newImmutableList(ex).iterator(); final Function1<XFeatureCall, String> _function = (XFeatureCall it) -> { return it.getConcreteSyntaxFeatureName(); }; final List<String> valNames = IteratorExtensions.<String>toList(IteratorExtensions.<XFeatureCall, String>map(Iterators.<XFeatureCall>filter(Iterators.<EObject>concat(_eAllContents, _iterator), XFeatureCall.class), _function)); final Function1<Variable, Boolean> _function_1 = (Variable it) -> { return Boolean.valueOf(valNames.contains(it.getName())); }; final Function1<Variable, String> _function_2 = (Variable it) -> { return it.getName(); }; _xblockexpression = IterableExtensions.<Variable, String>sortBy(IterableExtensions.<Variable>filter(body.getVariables(), _function_1), _function_2); } return _xblockexpression; }
List<XExpression> _newImmutableList = CollectionLiterals.<XExpression>newImmutableList(ex); Iterator<XExpression> _iterator = _newImmutableList.iterator(); Iterator<EObject> _plus = Iterators.<EObject>concat(_eAllContents, _iterator);