public void bind()

in src/main/java/com/google/cloud/spanner/pgadapter/parsers/ArrayParser.java [350:419]


  public void bind(ImmutableMap.Builder<String, Value> parametersBuilder, String name) {
    switch (elementOid) {
      case Oid.BIT:
      case Oid.BOOL:
        parametersBuilder.put(name, Value.boolArray((List<Boolean>) this.item));
        break;
      case Oid.INT2:
        if (this.item == null) {
          parametersBuilder.put(name, Value.int64Array((long[]) null));
        } else {
          parametersBuilder.put(
              name,
              Value.int64Array(
                  ((List<Short>) this.item)
                      .stream()
                          .map(s -> s == null ? null : s.longValue())
                          .collect(Collectors.toList())));
        }
        break;
      case Oid.INT4:
        if (this.item == null) {
          parametersBuilder.put(name, Value.int64Array((long[]) null));
        } else {
          parametersBuilder.put(
              name,
              Value.int64Array(
                  ((List<Integer>) this.item)
                      .stream()
                          .map(i -> i == null ? null : i.longValue())
                          .collect(Collectors.toList())));
        }
        break;
      case Oid.INT8:
        parametersBuilder.put(name, Value.int64Array((List<Long>) this.item));
        break;
      case Oid.OID:
        parametersBuilder.put(name, Value.pgOidArray((List<Long>) this.item));
        break;
      case Oid.NUMERIC:
        parametersBuilder.put(name, Value.pgNumericArray((List<String>) this.item));
        break;
      case Oid.FLOAT4:
        parametersBuilder.put(name, Value.float32Array((List<Float>) this.item));
        break;
      case Oid.FLOAT8:
        parametersBuilder.put(name, Value.float64Array((List<Double>) this.item));
        break;
      case Oid.UUID:
      case Oid.VARCHAR:
      case Oid.TEXT:
        parametersBuilder.put(name, Value.stringArray((List<String>) this.item));
        break;
      case Oid.JSONB:
        parametersBuilder.put(name, Value.pgJsonbArray((List<String>) this.item));
        break;
      case Oid.BYTEA:
        parametersBuilder.put(name, Value.bytesArray((List<ByteArray>) this.item));
        break;
      case Oid.TIMESTAMPTZ:
      case Oid.TIMESTAMP:
        parametersBuilder.put(name, Value.timestampArray((List<Timestamp>) this.item));
        break;
      case Oid.DATE:
        parametersBuilder.put(name, Value.dateArray((List<Date>) this.item));
        break;
      default:
        throw PGExceptionFactory.newPGException(
            "Unsupported array element type: " + arrayElementType, SQLState.InvalidParameterValue);
    }
  }