From cae4686fc61413691c623bcdd6eb63423e99dd22 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 28 Aug 2016 22:50:57 +0100 Subject: Remove usage of make it easy --- .../java/org/zwobble/mammoth/tests/Arguments.java | 32 ++++++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'src/test/java/org/zwobble/mammoth/tests/Arguments.java') diff --git a/src/test/java/org/zwobble/mammoth/tests/Arguments.java b/src/test/java/org/zwobble/mammoth/tests/Arguments.java index afb20bb..badb35a 100644 --- a/src/test/java/org/zwobble/mammoth/tests/Arguments.java +++ b/src/test/java/org/zwobble/mammoth/tests/Arguments.java @@ -18,18 +18,38 @@ public class Arguments { } public T get(Class clazz, T defaultValue) { - Iterator arguments = getAll(clazz).iterator(); - if (!arguments.hasNext()) { - return defaultValue; - } else { - return only(arguments); - } + return onlyOrDefault(getAll(clazz), defaultValue); + } + + public T get(ArgumentKey key, T defaultValue) { + return onlyOrDefault(getAll(key), defaultValue); } private Iterable getAll(Class clazz) { return Iterables.lazyFilter(asList(arguments), clazz); } + private Iterable getAll(ArgumentKey key) { + return Iterables.lazyMap( + Iterables.lazyFilter( + Iterables.lazyFilter(asList(arguments), Argument.class), + argument -> argument.getKey().equals(key) + ), + argument -> (T)argument.getValue() + ); + } + + private T onlyOrDefault(Iterable iterable, T defaultValue) { + return onlyOrDefault(iterable.iterator(), defaultValue); + } + + private T onlyOrDefault(Iterator iterator, T defaultValue) { + if (!iterator.hasNext()) { + return defaultValue; + } else { + return only(iterator); + } + } private T only(Iterable iterable) { return only(iterable.iterator()); -- cgit v1.2.3