Skip to content

Instantly share code, notes, and snippets.

@rnaufal
Last active September 10, 2018 20:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rnaufal/2838c035c9cf4d36bd800a89d4024ec0 to your computer and use it in GitHub Desktop.
Save rnaufal/2838c035c9cf4d36bd800a89d4024ec0 to your computer and use it in GitHub Desktop.
private Iterable<Object[]> convert(final Iterable<Object[]> data) {
List<Object[]> parameters = new ArrayList<>();
for (Object[] args : data) {
Object[] params = new Object[args.length];
for (int i = 0; i < args.length; i++) {
final Class<?> parameterClazz = method.getMethod()
.getParameterTypes()[i];
params[i] = convertParameter(args[i], parameterClazz);
}
parameters.add(params);
}
return parameters;
}
private Object convertParameter(final Object parameter,
final Class<?> parameterClass) {
return getParameterConverter(parameterClass)
.map(converter -> converter.convert(parameter))
.orElseThrow(() -> new NotFoundParameterGeneratorException("Cannot convert " + parameter + " to " + parameterClass));
}
private Optional<? extends ParameterConverter<Object, ?>> getParameterConverter(final Class<?> parameterClass) {
return Optional.ofNullable(convertersByClass.get(parameterClass));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment