code: public static Polygon polygon(final LineString exteriorBoundary, final LineString... interiorBoundaries) {
          ensurePolygonIsClosed(exteriorBoundary);
          for (final LineString boundary : interiorBoundaries) {
              ensurePolygonIsClosed(boundary);
          }
          return new Polygon(exteriorBoundary, interiorBoundaries);
      }
docs: Lets you create a Polygon representing a GeoJSON Polygon type. This method is especially useful for defining polygons with inner
  rings.
  
  @param exteriorBoundary   a LineString that contains a series of Points that make up the polygon.  The first and last points should
  be the same to close the polygon
  @param interiorBoundaries optional varargs that let you define the boundaries for any holes inside the polygon
  @return a PolygonBuilder to be used to build up the required Polygon
  @throws java.lang.IllegalArgumentException if the start and end points are not the same
  @mongodb.server.release 2.4
  @see <a href="http://docs.mongodb.org/manual/apps/geospatial-indexes/#geojson-objects">GeoJSON</a>