class DAStatementWriter extends AbstractDAWriter<T> {

  public DAStatementWriter<T> appendParamValues(@Nonnull List<DAParameter> params,
                                                @Nullable Function<DAParameter, String> parameterNameFunction) throws IOException {
    if (params.isEmpty()) {
      commons.append("()");
      return this;
    }

    Function<DAParameter, String> toParameterName = parameterNameFunction == null ? toName() : parameterNameFunction;
    Iterator<String> it = from(params).transform(toParameterName).filter(notNull()).toList().iterator();

    commons.append("(");
    while (it.hasNext()) {
      String parameterName = it.next();
      commons.append(parameterName);
      if (it.hasNext()) {
        commons.append(", ");
      }
    }
    commons.append(")");
    return this;
  }

    DAStatementWriter(FileContext fileContext, T parent, int indentOffset);
    DAStatementWriter(CommonMethods commonMethods, T parent);

}