aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-31 15:18:10 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-31 15:18:10 +0000
commitf80befcf2be566d35e5a17646899bfed82473029 (patch)
treec7bba09d731ae1b7edf7b8b5faa54bcadf3843a3 /src/main/java/org
parent6f2fe3a3ce471e658030f4c9fcee3b8468160f6e (diff)
Use eagerMap instead of Lists.transform
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java7
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraLists.java9
2 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index 6c4c0c8..5d4b4cf 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -3,6 +3,7 @@ package org.zwobble.couscous.frontends.java;
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
+
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.Assignment;
import org.eclipse.jdt.core.dom.BooleanLiteral;
@@ -53,13 +54,13 @@ import org.zwobble.couscous.ast.TypeName;
import org.zwobble.couscous.values.BooleanValue;
import org.zwobble.couscous.values.IntegerValue;
-import com.google.common.collect.Lists;
import static java.util.Arrays.asList;
import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement;
import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration;
import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
+import static org.zwobble.couscous.util.ExtraLists.eagerMap;
public class JavaReader {
@@ -151,7 +152,7 @@ public class JavaReader {
@SuppressWarnings("unchecked")
List<VariableDeclarationFragment> fragments = (List<VariableDeclarationFragment>)statement.fragments();
TypeName type = typeOf(statement.getType());
- return Lists.transform(fragments, fragment -> localVariableDeclaration(fragment.resolveBinding().getKey(), fragment.getName().getIdentifier(), type, readExpression(fragment.getInitializer())));
+ return eagerMap(fragments, fragment -> localVariableDeclaration(fragment.resolveBinding().getKey(), fragment.getName().getIdentifier(), type, readExpression(fragment.getInitializer())));
}
private static ExpressionNode readExpression(Expression expression) {
@@ -258,7 +259,7 @@ public class JavaReader {
@SuppressWarnings({"unchecked", "rawtypes"})
private static List<ExpressionNode> readArguments(final List javaArguments) {
- return Lists.transform((List<Expression>)javaArguments, JavaReader::readExpression);
+ return eagerMap((List<Expression>)javaArguments, JavaReader::readExpression);
}
private static ExpressionNode readInfixExpression(InfixExpression expression) {
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraLists.java b/src/main/java/org/zwobble/couscous/util/ExtraLists.java
index 36c9b06..590b466 100644
--- a/src/main/java/org/zwobble/couscous/util/ExtraLists.java
+++ b/src/main/java/org/zwobble/couscous/util/ExtraLists.java
@@ -5,6 +5,7 @@ import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
public class ExtraLists {
@SuppressWarnings("unchecked")
@@ -26,6 +27,14 @@ public class ExtraLists {
}
}
+ public static <T, R> List<R> eagerMap(
+ Iterable<T> iterable,
+ Function<T, R> function) {
+ return StreamSupport.stream(iterable.spliterator(), false)
+ .map(function)
+ .collect(Collectors.toList());
+ }
+
@FunctionalInterface
public static interface CheckedFunction<T, R, E extends Exception> {
R apply(T value) throws E;