blob: e5cd79996abf92fb83b4802a1c8bf853f2f01ed7 [file] [log] [blame]
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (c) 2012-2014 Monty Program Ab
// Copyright (c) 2015-2021 MariaDB Corporation Ab
package org.mariadb.jdbc.type;
import java.util.Arrays;
/** Multi polygon */
public class MultiPolygon implements Geometry {
private final Polygon[] polygons;
/**
* Constructor
*
* @param polygons polygons
*/
public MultiPolygon(Polygon[] polygons) {
this.polygons = polygons;
}
/**
* Get polygons
*
* @return polygons
*/
public Polygon[] getPolygons() {
return polygons;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("MULTIPOLYGON(");
int indexpoly = 0;
for (Polygon poly : polygons) {
if (indexpoly++ > 0) {
sb.append(",");
}
sb.append("(");
int indexLine = 0;
for (LineString ls : poly.getLines()) {
if (indexLine++ > 0) {
sb.append(",");
}
sb.append("(");
int index = 0;
for (Point pt : ls.getPoints()) {
if (index++ > 0) {
sb.append(",");
}
sb.append(pt.getX()).append(" ").append(pt.getY());
}
sb.append(")");
}
sb.append(")");
}
sb.append(")");
return sb.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || !(o instanceof MultiPolygon)) return false;
return toString().equals(o.toString());
}
@Override
public int hashCode() {
return Arrays.hashCode(polygons);
}
}