code: public Polygon fromTransferObject(PolygonTo input, CrsId crsId) {
  
          if (input == null) { return null; }
          crsId = getCrsId(input, crsId);
          isValid(input);
  
          return createPolygon(input.getCoordinates(), crsId);
      }
docs: Creates a polygon object starting from a transfer object.
  
  @param input the polygon transfer object
  @param crsId the crs id to use (ignores the crs of the input). If null, uses the crs of the input.
  @return the corresponding geometry
  @throws IllegalArgumentException If the geometry could not be constructed due to an invalid transfer object