public void write()

in baremaps-core/src/main/java/org/apache/baremaps/database/type/geometry/GeometryDataType.java [130:159]


  public void write(final ByteBuffer buffer, final int position, final Geometry value) {

    // Write the geometry
    if (value == null) {
      buffer.put(position, (byte) 0);
    } else if (value instanceof Point point) {
      buffer.put(position, (byte) 1);
      pointDataType.write(buffer, position + Byte.BYTES, point);
    } else if (value instanceof LineString lineString) {
      buffer.put(position, (byte) 2);
      lineStringDataType.write(buffer, position + Byte.BYTES, lineString);
    } else if (value instanceof Polygon polygon) {
      buffer.put(position, (byte) 3);
      polygonDataType.write(buffer, position + Byte.BYTES, polygon);
    } else if (value instanceof MultiPoint multiPoint) {
      buffer.put(position, (byte) 4);
      multiPointDataType.write(buffer, position + Byte.BYTES, multiPoint);
    } else if (value instanceof MultiLineString multiLineString) {
      buffer.put(position, (byte) 5);
      multiLineStringDataType.write(buffer, position + Byte.BYTES, multiLineString);
    } else if (value instanceof MultiPolygon multiPolygon) {
      buffer.put(position, (byte) 6);
      multiPolygonDataType.write(buffer, position + Byte.BYTES, multiPolygon);
    } else if (value instanceof GeometryCollection geometryCollection) {
      buffer.put(position, (byte) 7);
      geometryCollectionDataType.write(buffer, position + Byte.BYTES, geometryCollection);
    } else {
      throw new IllegalArgumentException("Unsupported geometry type: " + value.getClass());
    }
  }