/** * Returns an iterable that performs the given {@code transformation} for each element of {@code original} when * requested. The mapping is done lazily. That is, subsequent iterations of the elements in the iterable will * repeatedly apply the transformation. * <p> * The transformation maps each element to an iterable, and all resulting iterables are combined to a single iterable. * Effectively a combination of {@link #map(Iterable, Function1)} and {@link #flatten(Iterable)} is performed. * </p> * <p> * The returned iterable's iterator <i>does not support {@code remove()}</i> in contrast to {@link #map(Iterable, Function1)}. * </p> * * @param original * the original iterable. May not be <code>null</code>. * @param transformation * the transformation. May not be <code>null</code> and must not yield <code>null</code>. * @return an iterable that provides the result of the transformation. Never <code>null</code>. * * @since 2.13 */ @Pure public static <T, R> Iterator<R> flatMap(Iterator<T> original, Function1<? super T, ? extends Iterator<R>> transformation) { return flatten(map(original, transformation)); }
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; }
Iterator<String> _map = IteratorExtensions.<XFeatureCall, String>map(_filter, _function); final List<String> valNames = IteratorExtensions.<String>toList(_map); EList<Variable> _variables = body.getVariables();
final Iterable<LightweightTypeReference> typesOfIdentifiables = IteratorExtensions.<LightweightTypeReference>toIterable(IteratorExtensions.<JvmIdentifiableElement, LightweightTypeReference>map(Iterators.<JvmIdentifiableElement>filter(EcoreUtil.<Object>getAllContents(eobject, true), JvmIdentifiableElement.class), _function)); for (final LightweightTypeReference typeRef : typesOfIdentifiables) { if ((typeRef != null)) {
Iterator<Attribute> _map = IteratorExtensions.<QueryParameterValue, Attribute>map(_filter_3, _function_3); Set<Attribute> _set = IteratorExtensions.<Attribute>toSet(_map); final Function1<Attribute,String> _function_4 = new Function1<Attribute,String>() {
Iterator<Attribute> _map = IteratorExtensions.<QueryParameterValue, Attribute>map(_filter_2, _function_3); Set<Attribute> _set = IteratorExtensions.<Attribute>toSet(_map); final Function1<Attribute,String> _function_4 = new Function1<Attribute,String>() {