public static Parser create()

in src/main/java/com/google/cloud/spanner/pgadapter/parsers/Parser.java [66:131]


  public static Parser<?> create(
      SessionState sessionState, byte[] item, int oidType, FormatCode formatCode) {
    switch (oidType) {
      case Oid.BOOL:
      case Oid.BIT:
        return new BooleanParser(item, formatCode);
      case Oid.BYTEA:
      case Oid.BIT_ARRAY:
        return new BinaryParser(item, formatCode);
      case Oid.DATE:
        return new DateParser(item, formatCode);
      case Oid.FLOAT4:
        return new FloatParser(item, formatCode);
      case Oid.FLOAT8:
        return new DoubleParser(item, formatCode);
      case Oid.INT2:
        return new ShortParser(item, formatCode);
      case Oid.INT4:
        return new IntegerParser(item, formatCode);
      case Oid.INT8:
      case Oid.OID:
        return new LongParser(item, formatCode);
      case Oid.NUMERIC:
        return new NumericParser(item, formatCode);
      case Oid.TEXT:
      case Oid.VARCHAR:
        return new StringParser(item, formatCode);
      case Oid.UUID:
        return new UuidParser(item, formatCode);
      case Oid.TIMESTAMP:
      case Oid.TIMESTAMPTZ:
        return new TimestampParser(item, formatCode, sessionState);
      case Oid.INTERVAL:
        return new IntervalParser(item, formatCode);
      case Oid.JSONB:
        return new JsonbParser(item, formatCode);

      case Oid.BOOL_ARRAY:
      case Oid.BYTEA_ARRAY:
      case Oid.DATE_ARRAY:
      case Oid.FLOAT4_ARRAY:
      case Oid.FLOAT8_ARRAY:
      case Oid.INT2_ARRAY:
      case Oid.INT4_ARRAY:
      case Oid.INT8_ARRAY:
      case Oid.OID_ARRAY:
      case Oid.NUMERIC_ARRAY:
      case Oid.TEXT_ARRAY:
      case Oid.VARCHAR_ARRAY:
      case Oid.UUID_ARRAY:
      case Oid.TIMESTAMP_ARRAY:
      case Oid.TIMESTAMPTZ_ARRAY:
      case Oid.INTERVAL_ARRAY:
      case Oid.JSONB_ARRAY:
        int elementOid = getArrayElementOid(oidType);
        return new ArrayParser(item, formatCode, sessionState, toType(elementOid), elementOid);

      case Oid.UNSPECIFIED:
      default:
        // Use the UnspecifiedParser for unknown types. This will encode the parameter value as a
        // string and send it to Spanner without any type information. This will ensure that clients
        // that for example send char instead of varchar as the type code for a parameter would
        // still work.
        return new UnspecifiedParser(item, formatCode);
    }
  }