aboutsummaryrefslogtreecommitdiff
path: root/src/com/google/caliper/SimpleBenchmark.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/google/caliper/SimpleBenchmark.java')
-rw-r--r--src/com/google/caliper/SimpleBenchmark.java28
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;