diff options
Diffstat (limited to 'src/com/google/caliper/SimpleBenchmark.java')
-rw-r--r-- | src/com/google/caliper/SimpleBenchmark.java | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/com/google/caliper/SimpleBenchmark.java b/src/com/google/caliper/SimpleBenchmark.java index 8d2d4b1..31ff6c9 100644 --- a/src/com/google/caliper/SimpleBenchmark.java +++ b/src/com/google/caliper/SimpleBenchmark.java @@ -16,12 +16,11 @@ package com.google.caliper; +import com.google.caliper.UserException.ExceptionFromUserCodeException; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; - import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collection; import java.util.Map; @@ -88,34 +87,31 @@ public abstract class SimpleBenchmark implements Benchmark { return methods.keySet(); } + Parameter<?> parameter = parameters.get(parameterName); + if (parameter == null) { + throw new IllegalArgumentException(); + } try { - TypeConverter typeConverter = new TypeConverter(); - Parameter<?> parameter = parameters.get(parameterName); - if (parameter == null) { - throw new IllegalArgumentException(); - } Collection<?> values = parameter.values(); - Type type = parameter.getType(); ImmutableSet.Builder<String> result = ImmutableSet.builder(); for (Object value : values) { - result.add(typeConverter.toString(value, type)); + result.add(String.valueOf(value)); } return result.build(); } catch (Exception e) { - throw new ExecutionException(e); + throw new ExceptionFromUserCodeException(e); } } public TimedRunnable createBenchmark(Map<String, String> parameterValues) { - TypeConverter typeConverter = new TypeConverter(); - if (!parameterNames().equals(parameterValues.keySet())) { throw new IllegalArgumentException("Invalid parameters specified. Expected " + parameterNames() + " but was " + parameterValues.keySet()); } try { + @SuppressWarnings({"ClassNewInstance"}) // can throw any Exception, so we catch all Exceptions final SimpleBenchmark copyOfSelf = getClass().newInstance(); final Method method = methods.get(parameterValues.get("benchmark")); @@ -125,8 +121,8 @@ public abstract class SimpleBenchmark implements Benchmark { continue; } - Parameter parameter = parameters.get(parameterName); - Object value = typeConverter.fromString(entry.getValue(), parameter.getType()); + Parameter<?> parameter = parameters.get(parameterName); + Object value = TypeConverter.fromString(entry.getValue(), parameter.getType()); parameter.set(copyOfSelf, value); } copyOfSelf.setUp(); @@ -138,7 +134,7 @@ public abstract class SimpleBenchmark implements Benchmark { }; } catch (Exception e) { - throw new ExecutionException(e); + throw new ExceptionFromUserCodeException(e); } } @@ -148,7 +144,7 @@ public abstract class SimpleBenchmark implements Benchmark { */ private Map<String, Method> createTimedMethods() { ImmutableMap.Builder<String, Method> result = ImmutableMap.builder(); - for (final Method method : getClass().getDeclaredMethods()) { + for (Method method : getClass().getDeclaredMethods()) { int modifiers = method.getModifiers(); if (!method.getName().startsWith("time")) { continue; |