{@inheritDoc}

@see jp.co.future.uroborosql.filter.AbstractSqlFilter#doOutParameter(java.lang.String, java.lang.Object)
500984
@Override
	public Object doOutParameter(final String key, final Object val) {
		LOG.debug("Out parameter - Key:{}, value:{}", key, val);
		return val;
	}
661294
@Override
	public SqlContextFactory addQueryAutoParameterBinder(final Consumer<SqlContext> binder) {
		queryAutoParameterBinders.add(binder);
		queryAutoParameterBinder = queryAutoParameterBinders.stream().reduce((first, second) -> first.andThen(second))
				.orElse(null);
		return this;
	}
881681
public String deleteById(final Map<String, Object> parameter) {
    return new SQL() {
      {
        Class<?> clazz = (Class<?>) parameter.get(CLASS_KEY);
        DELETE_FROM(EntityUtil.getTableName(clazz));
        WHERE("id=#{" + PARA_KEY + '}');
      }
    }.toString();
  }
570223
@Override
    public Query setParameter(Parameter<Date> paramParameter, Date paramDate, TemporalType paramTemporalType)
    {
        throw new UnsupportedOperationException("setParameter is unsupported by Kundera");
    }
1202112
@Override
    public <T> TypedQuery<X> setParameter(Parameter<T> arg0, T arg1)
    {
        query.setParameter(arg0, arg1);
        return this;
    }
1262980
public static PreparedStatement bindParams(PreparedStatement pstm, Object... bindValues)
            throws SQLException {
        if (bindValues != null)
            for (int i = 0; i < bindValues.length; i++) {
                Object value = bindValues[i];
                if (value instanceof Boolean) {
                    pstm.setBoolean(i + 1, (Boolean) value);
                } else if (value instanceof Character || value instanceof String) {
                    pstm.setString(i + 1, value.toString());
                } else if (value instanceof Byte) {
                    pstm.setByte(i + 1, (Byte) value);
                } else if (value instanceof Short) {
                    pstm.setShort(i + 1, (Short) value);
                } else if (value instanceof Integer) {
                    pstm.setInt(i + 1, (Integer) value);
                } else if (value instanceof Long) {
                    pstm.setLong(i + 1, (Long) value);
                } else if (value instanceof BigInteger) {
                    pstm.setLong(i + 1, ((BigInteger) value).longValue());
                } else if (value instanceof Float) {
                    pstm.setFloat(i + 1, (Float) value);
                } else if (value instanceof Double) {
                    pstm.setDouble(i + 1, (Double) value);
                } else if (value instanceof BigDecimal) {
                    pstm.setBigDecimal(i + 1, (BigDecimal) value);
                } else if (value instanceof java.sql.Date) {
                    pstm.setDate(i + 1, (java.sql.Date) value);
                } else if (value instanceof java.sql.Time) {
                    pstm.setTime(i + 1, (java.sql.Time) value);
                } else if (value instanceof java.sql.Timestamp) {
                    pstm.setTimestamp(i + 1, (java.sql.Timestamp) value);
                } else if (value instanceof Date) {
                    pstm.setTimestamp(i + 1, new Timestamp(((Date) value).getTime()));
                } else if (value instanceof Blob) {
                    pstm.setBlob(i + 1, (Blob) value);
                } else if (value instanceof Clob) {
                    pstm.setClob(i + 1, (Clob) value);
                } else if (value instanceof byte[]) {
                    pstm.setBytes(i + 1, (byte[]) value);
                } else {
                    pstm.setObject(i + 1, value);
                }
            }
        return pstm;
    }

    /**
     * Bind parameter values to a {@link CallableStatement}.
     * 
     * @param cstm
     * @param bindValues
     * @return
     * @since 0.8.2
     * @throws SQLException
     */
    public static PreparedStatement bindParams(CallableStatement cstm, Object... bindValues)
            throws SQLException {
        if (bindValues != null)
            for (int i = 0; i < bindValues.length; i++) {
                Object value = bindValues[i];
                if (value instanceof Boolean) {
                    cstm.setBoolean(i + 1, (Boolean) value);
                } else if (value instanceof Character || value instanceof String) {
                    cstm.setString(i + 1, value.toString());
                } else if (value instanceof Byte) {
                    cstm.setByte(i + 1, (Byte) value);
                } else if (value instanceof Short) {
                    cstm.setShort(i + 1, (Short) value);
                } else if (value instanceof Integer) {
                    cstm.setInt(i + 1, (Integer) value);
                } else if (value instanceof Long) {
                    cstm.setLong(i + 1, (Long) value);
                } else if (value instanceof BigInteger) {
                    cstm.setLong(i + 1, ((BigInteger) value).longValue());
                } else if (value instanceof Float) {
                    cstm.setFloat(i + 1, (Float) value);
                } else if (value instanceof Double) {
                    cstm.setDouble(i + 1, (Double) value);
                } else if (value instanceof BigDecimal) {
                    cstm.setBigDecimal(i + 1, (BigDecimal) value);
                } else if (value instanceof java.sql.Date) {
                    cstm.setDate(i + 1, (java.sql.Date) value);
                } else if (value instanceof java.sql.Time) {
                    cstm.setTime(i + 1, (java.sql.Time) value);
                } else if (value instanceof java.sql.Timestamp) {
                    cstm.setTimestamp(i + 1, (java.sql.Timestamp) value);
                } else if (value instanceof Date) {
                    cstm.setTimestamp(i + 1, new Timestamp(((Date) value).getTime()));
                } else if (value instanceof Blob) {
                    cstm.setBlob(i + 1, (Blob) value);
                } else if (value instanceof Clob) {
                    cstm.setClob(i + 1, (Clob) value);
                } else if (value instanceof byte[]) {
                    cstm.setBytes(i + 1, (byte[]) value);
                } else {
                    cstm.setObject(i + 1, value);
                }
            }
        return cstm;
    }
432929
@Override
    public <T> T getParameterValue(Parameter<T> arg0)
    {

        return query.getParameterValue(arg0);
    }
1159897
@Override
    public <T> Query setParameter(Parameter<T> paramParameter, T paramT)
    {
        if (!getParameters().contains(paramParameter))
        {
            throw new IllegalArgumentException("parameter does not correspond to a parameter of the query");
        }

        if (paramParameter.getName() != null)
        {
            kunderaQuery.setParameter(paramParameter.getName(), paramT);
        }
        else
        {
            kunderaQuery.setParameter(paramParameter.getPosition(), paramT);
        }

        return this;
    }
729689
@Override
	public Parameter doParameter(final Parameter parameter) {
		if (getFilters().isEmpty()) {
			return parameter;
		}
		Parameter param = parameter;
		for (final SqlFilter filter : getFilters()) {
			param = filter.doParameter(param);
		}
		return param;
	}
628225
@Override
	public SqlContext inOutParamIfAbsent(final String parameterName, final Object value, final int sqlType) {
		if (!hasParam(parameterName)) {
			inOutParam(parameterName, value, sqlType);
		}
		return this;
	}
872494
public void serviceParameter(String pParameter, PageContext pPageContext) throws ServletException, IOException {
        Object param = pPageContext.getRequest().getAttribute(pParameter);

        if (param != null) {
            if (param instanceof Param) {
                ((Param) param).service(pPageContext);
            }
            else {
                pPageContext.getOut().print(param);
            }
        }
        else {
            // Try to get value from parameters
            Object obj = pPageContext.getRequest().getParameter(pParameter);

            // Print parameter or default value
            pPageContext.getOut().print((obj != null) ? obj : "");
        }
    }
918496
protected int doInsert(JdbcTemplate jdbcTemplate, TaskRequest req, TaskResponse res) {
        //Setup the insert parameters and setter
        final List<Phrase> parametersInUse = insert_parameters != null ? insert_parameters : parameters;
        final PreparedStatementSetter preparedStatementSetter = new PhraseParameterPreparedStatementSetter(parametersInUse, req, res);
        
        //Get the insert sql and execute the insert
        final String fInsertSql = (String) insert_sql.evaluate(req, res);
        return jdbcTemplate.update(fInsertSql, preparedStatementSetter);
    }
542740
@Override
	public Map<String, Object> getOutParams(final CallableStatement callableStatement) throws SQLException {
		Map<String, Object> out = new HashMap<>();
		Parameter[] bindParameters = getBindParameters();
		int parameterIndex = 1;
		for (Parameter parameter : bindParameters) {
			if (parameter instanceof OutParameter) {
				String key = parameter.getParameterName();
				out.put(key, getSqlFilterManager().doOutParameter(key, callableStatement.getObject(parameterIndex)));
			}
			parameterIndex++;
		}

		LOG.debug("Stored procedure out parameter[{}]", out);
		return out;
	}
388779
private void onTypedParameter(Object value, UpdateClause updateClause, String fieldName) {
        String token = value.toString();
        if (token != null && token.startsWith(":")) {
            addTypedParameter(Type.NAMED, token, updateClause);
            filterJPAParameterInfo(Type.NAMED, token.substring(1), fieldName);
        } else if (token != null && token.startsWith("?")) {
            addTypedParameter(Type.INDEXED, token, updateClause);
            filterJPAParameterInfo(Type.INDEXED, token.substring(1), fieldName);
        }
    }
462161
public Object execute(final OIdentifiable o, final OCommandExecutor iRequester) {
    // RESOLVE VALUES USING THE CURRENT RECORD
    for (int i = 0; i < configuredParameters.length; ++i) {
      if (configuredParameters[i] instanceof OSQLFilterItemField)
        runtimeParameters[i] = ((OSQLFilterItemField) configuredParameters[i]).getValue(o, null);
      else if (configuredParameters[i] instanceof OSQLFunctionRuntime)
        runtimeParameters[i] = ((OSQLFunctionRuntime) configuredParameters[i]).execute(o, iRequester);
    }

    final Object functionResult = function.execute(o, runtimeParameters, iRequester);

    return transformValue(o, functionResult);
  }
1345104
public void addRegexQueryParameters( List<String> inputParams, String listId, String fieldName, boolean union ) {
        addRegexQueryParameters(inputParams, listId, fieldName, null, union);
    }
826440
@SuppressWarnings("unchecked")
	@Override
	public T outParam(final String paramName, final int sqlType) {
		context().outParam(paramName, sqlType);
		return (T) this;
	}