package org.jdbi.v3.core.argument;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Optional;
import org.jdbi.v3.core.statement.StatementContext;
public class MapArguments implements NamedArgumentFinder {
private final Map<String, ?> args;
public MapArguments(Map<String, ?> args) {
this.args = args;
}
@Override
public Optional<Argument> find(String name, StatementContext ctx) {
if (args.containsKey(name)) {
final Object argument = args.get(name);
final Class<?> argumentClass =
argument == null ? Object.class : argument.getClass();
return ctx.findArgumentFor(argumentClass, argument);
}
return Optional.empty();
}
@Override
public Collection<String> getNames() {
return args.keySet();
}
@Override
public String toString() {
return new LinkedHashMap<>(args).toString();
}
}