docs: private void processWay(Way way) {
          // The way has at least 2 way nodes
          if (way.getWayNodes().size() < 2) {
              LOGGER.finer("Found way with fewer than 2 way nodes. Way id: " + way.getId());
              return;
          }
  
          // Geo tagging
          if (this.configuration.isGeoTags()) {
              this.geoTagger.storeAdministrativeBoundaries(way);
          }
  
          // Retrieve way nodes
          boolean validWay = true;
          LatLong[] wayNodes = new LatLong[way.getWayNodes().size()];
          int i = 0;
          for (WayNode wayNode : way.getWayNodes()) {
              wayNodes[i] = findNodeByID(wayNode.getNodeId());
              if (wayNodes[i] == null) {
                  validWay = false;
                  LOGGER.finer("Unknown way node " + wayNode.getNodeId() + " in way " + way.getId());
                  break;
              }
              i++;
          }
  
          // For a valid way all way nodes must be existent in the input data
          if (!validWay) {
              return;
          }
  
          //Calculate center of way dependent on its form
          LatLong centroid;
          if (way.isClosed() && way.getWayNodes().size() >= MIN_NODES_POLYGON) {
              // Closed way
              // Convert the way to a JTS polygon
              Coordinate[] coordinates = new Coordinate[wayNodes.length];
              for (int j = 0; j < wayNodes.length; j++) {
                  LatLong wayNode = wayNodes[j];
                  coordinates[j] = new Coordinate(wayNode.longitude, wayNode.latitude);
              }
              Polygon polygon = GEOMETRY_FACTORY.createPolygon(GEOMETRY_FACTORY.createLinearRing(coordinates), null);
              if (!polygon.isValid()) {
                  return;
              }
  
              // Compute the centroid of the polygon
              Point center = polygon.getCentroid();
              if (center == null) {
                  return;
              }
              centroid = new LatLong(center.getY(), center.getX());
          } else {
              // Non-closed way
              centroid = wayNodes[(wayNodes.length - 1) / 2];
          }
  
          // Process the way
          processEntity(way, centroid.getLatitude(), centroid.getLongitude());
      }