appendPolygonText method

void appendPolygonText(
  1. Polygon polygon,
  2. List<Ordinate> outputOrdinates,
  3. bool useFormatting,
  4. int level,
  5. bool indentFirst,
  6. StringBuffer writer,
  7. NumberFormat formatter,
)

Converts a Polygon to <Polygon Text> format, then appends it to the writer.

@param polygon the Polygon to process @param useFormatting flag indicating that @param level the indentation level @param indentFirst flag indicating that the first {@code Coordinate} of the sequence should be indented for better visibility @param writer the output writer to append to @param formatter the formatter to use for writing ordinate values.

Implementation

void appendPolygonText(
    Polygon polygon,
    List<Ordinate> outputOrdinates,
    bool useFormatting,
    int level,
    bool indentFirst,
    StringBuffer writer,
    NumberFormat formatter) {
  if (polygon.isEmpty()) {
    writer.write("EMPTY");
  } else {
    if (indentFirst) indent(useFormatting, level, writer);
    writer.write("(");
    appendSequenceText(polygon.getExteriorRing().getCoordinateSequence(),
        outputOrdinates, useFormatting, level, false, writer, formatter);
    for (int i = 0; i < polygon.getNumInteriorRing(); i++) {
      writer.write(", ");
      appendSequenceText(polygon.getInteriorRingN(i).getCoordinateSequence(),
          outputOrdinates, useFormatting, level + 1, true, writer, formatter);
    }
    writer.write(")");
  }
}