private void applyOutParameters(CallableStatement statement) throws SQLException {
   for (StoredProcedureParameter param : getParameters()) {
     if (param.getParameterType().equals(ParameterType.OUT)
         || param.getParameterType().equals(ParameterType.INOUT)) {
       if (!isEmpty(param.getName())) {
         param.setOutValue(statement.getObject(param.getName()));
         log.debug(
             "Receiving 'OUT' parameter with name '"
                 + param.getName()
                 + "' and value '"
                 + param.getOutValue()
                 + "'");
       } else {
         param.setOutValue(statement.getObject(param.getOrder()));
         log.debug(
             "Receiving 'OUT' parameter with order '"
                 + param.getOrder()
                 + "' and value '"
                 + param.getOutValue()
                 + "'");
       }
     }
   }
 }
  private void applyInParameters(CallableStatement statement) throws SQLException {
    for (StoredProcedureParameter param : getParameters()) {
      if (param.getParameterType().equals(ParameterType.IN)
          || param.getParameterType().equals(ParameterType.INOUT)) {
        if (!isEmpty(param.getName())) {
          statement.setObject(
              param.getName(), param.getInValue(), param.getParameterValueType().getValue());
          log.debug(
              "Applying 'IN' parameter with name '"
                  + param.getName()
                  + "' and value '"
                  + param.getInValue()
                  + "'");
        } else {
          statement.setObject(
              param.getOrder(), param.getInValue(), param.getParameterValueType().getValue());
          log.debug(
              "Applying 'IN' parameter with order '"
                  + param.getOrder()
                  + "' and value '"
                  + param.getInValue()
                  + "'");
        }
      }

      if (param.getParameterType().equals(ParameterType.OUT)
          || param.getParameterType().equals(ParameterType.INOUT)) {
        if (!isEmpty(param.getName())) {
          statement.registerOutParameter(param.getName(), param.getParameterValueType().getValue());
          log.debug("Registering 'OUT' parameter with name '" + param.getName() + "'");
        } else {
          statement.registerOutParameter(
              param.getOrder(), param.getParameterValueType().getValue());
          log.debug("Registering 'OUT' parameter with order '" + param.getOrder() + "'");
        }
      }
    }
  }