001package de.monochromata.anaphors.ast; 002 003import static java.util.stream.Collectors.toList; 004 005import java.util.List; 006 007import org.apache.commons.lang3.tuple.ImmutablePair; 008import org.apache.commons.lang3.tuple.Pair; 009 010import de.monochromata.anaphors.ast.relatedexp.RelatedExpression; 011import de.monochromata.anaphors.ast.relatedexp.strategy.LocalTempVariableContents; 012 013public interface AnaphorPartsStreaming { 014 015 static <N, E, T, B, TB extends B, S, I, QI, R extends RelatedExpression<N, T, B, TB, S, QI, R>, A extends ASTBasedAnaphora<N, E, T, B, TB, S, I, QI, R, A>> List<Pair<LocalTempVariableContents, String>> toVariableContentsAndAnaphors( 016 final List<AnaphorPart<N, E, T, B, TB, S, I, QI, R, A>> anaphorParts) { 017 final List<Pair<LocalTempVariableContents, String>> variableContentsAndAnaphors = anaphorParts.stream() 018 .map(anaphorPart -> new ImmutablePair<>( 019 anaphorPart.getAnaphorResolutionStrategy().getLocalTempVariableContents(), 020 anaphorPart.getAnaphor())) 021 .collect(toList()); 022 return variableContentsAndAnaphors; 023 } 024 025}