package org.skife.jdbi.v2;
import org.skife.jdbi.v2.tweak.Argument;
import org.skife.jdbi.v2.tweak.NamedArgumentFinder;
import java.util.LinkedHashMap;
import java.util.Map;
class MapArguments implements NamedArgumentFinder
{
private final Foreman foreman;
private final StatementContext ctx;
private final Map<String, ? extends Object> args;
MapArguments(Foreman foreman, StatementContext ctx, Map<String, ? extends Object> args)
{
this.foreman = foreman;
this.ctx = ctx;
this.args = args;
}
@Override
public Argument find(String name)
{
if (args.containsKey(name))
{
final Object argument = args.get(name);
final Class<? extends Object> argumentClass =
argument == null ? Object.class : argument.getClass();
return foreman.createArgument(argumentClass, argument, ctx);
}
else
{
return null;
}
}
@Override
public String toString() {
return new LinkedHashMap<String, Object>(args).toString();
}
}