@Override public void apply(final SQLStatement q) throws SQLException { q.bindNamedArgumentFinder(new NamedArgumentFinder() { @Override public Argument find(String name) { Expression e = engine.createExpression(name); final Object it = e.evaluate(new MapContext(ImmutableMap.of(root_name, root))); if (it != null) { return q.getContext().getForeman().createArgument(it.getClass(), it, q.getContext()); } else { return null; } } }); } };
@Override public void apply(SQLStatement q) throws SQLException { q.bindNamedArgumentFinder(new NamedArgumentFinder() { @Override public Argument find(String name) { Expression e = engine.createExpression(name); final Object it = e.evaluate(new MapContext(ImmutableMap.of(root_name, root))); if (it != null) { return new Argument() { @Override public void apply(int position, PreparedStatement statement, StatementContext ctx) throws SQLException { statement.setObject(position, it); } }; } else { return null; } } }); } };
/** * Binds named parameters from JavaBean properties on o. * * @param o source of named parameter values to use as arguments * * @return modified statement */ public SelfType bindFromProperties(Object o) { return bindNamedArgumentFinder(new BeanPropertyArguments(o, getContext(), getForeman())); }
/** * Binds named parameters from JavaBean properties on o. * * @param o source of named parameter values to use as arguments * * @return modified statement */ public SelfType bindFromProperties(Object o) { return bindNamedArgumentFinder(new BeanPropertyArguments(o, getContext(), getForeman())); }
/** * Binds named parameters from a map of String to Object instances * * @param args map where keys are matched to named parameters in order to bind arguments. * Can be null, in this case, the binding has no effect. * * @return modified statement */ @SuppressWarnings("unchecked") public SelfType bindFromMap(Map<String, ? extends Object> args) { if (args != null) { return bindNamedArgumentFinder(new MapArguments(getForeman(), getContext(), args)); } else { return (SelfType) this; } }
/** * Binds named parameters from a map of String to Object instances * * @param args map where keys are matched to named parameters in order to bind arguments. * Can be null, in this case, the binding has no effect. * * @return modified statement */ @SuppressWarnings("unchecked") public SelfType bindFromMap(Map<String, ? extends Object> args) { if (args != null) { return bindNamedArgumentFinder(new MapArguments(getForeman(), getContext(), args)); } else { return (SelfType) this; } }