class org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder extends org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPointBuilder<org.locationtech.spatial4j.shape.ShapeFactory$PolygonBuilder> implements org.locationtech.spatial4j.shape.ShapeFactory$PolygonBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder
  super_class: org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPointBuilder
{
  java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription> polyHoles;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;

  final org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory this$0;
    descriptor: Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory);
    descriptor: (Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
         0: .line 312
            aload 0 /* this */
            aload 1
            putfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.this$0:Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;
            aload 0 /* this */
            aload 1
            invokespecial org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPointBuilder.<init>:(Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;)V
         1: .line 314
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.polyHoles:Ljava/util/List;
         2: .line 312
            return
        end local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPolygonBuilder;
    MethodParameters:
        Name  Flags
      this$0  final

  public org.locationtech.spatial4j.shape.ShapeFactory$PolygonBuilder$HoleBuilder hole();
    descriptor: ()Lorg/locationtech/spatial4j/shape/ShapeFactory$PolygonBuilder$HoleBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
         0: .line 318
            new org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder$Geo3dHoleBuilder
            dup
            aload 0 /* this */
            invokespecial org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder$Geo3dHoleBuilder.<init>:(Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPolygonBuilder;)V
            areturn
        end local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPolygonBuilder;

  public org.locationtech.spatial4j.shape.Shape build();
    descriptor: ()Lorg/locationtech/spatial4j/shape/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
         0: .line 332
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription
            dup
            aload 0 /* this */
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.points:Ljava/util/List;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.polyHoles:Ljava/util/List;
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.<init>:(Ljava/util/List;Ljava/util/List;)V
            astore 1 /* description */
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription description
         1: .line 333
            aload 0 /* this */
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.this$0:Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory.planetModel:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 1 /* description */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            astore 2 /* polygon */
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPolygon polygon
         2: .line 334
            aload 2 /* polygon */
            ifnonnull 4
         3: .line 335
            new org.locationtech.spatial4j.exception.InvalidShapeException
            dup
            ldc "Invalid polygon, all points are coplanar"
            invokespecial org.locationtech.spatial4j.exception.InvalidShapeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 337
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygon
      StackMap stack:
            new org.apache.lucene.spatial.spatial4j.Geo3dShape
            dup
            aload 2 /* polygon */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.this$0:Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory.context:Lorg/locationtech/spatial4j/context/SpatialContext;
            invokespecial org.apache.lucene.spatial.spatial4j.Geo3dShape.<init>:(Lorg/apache/lucene/spatial3d/geom/GeoAreaShape;Lorg/locationtech/spatial4j/context/SpatialContext;)V
            areturn
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPolygon polygon
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription description
        end local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPolygonBuilder;
            1    5     1  description  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
            2    5     2      polygon  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;

  public org.locationtech.spatial4j.shape.Shape buildOrRect();
    descriptor: ()Lorg/locationtech/spatial4j/shape/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
         0: .line 342
            aload 0 /* this */
            invokevirtual org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.build:()Lorg/locationtech/spatial4j/shape/Shape;
            areturn
        end local 0 // org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPolygonBuilder;

  static org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory access$0(org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder);
    descriptor: (Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPolygonBuilder;)Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 312
            aload 0
            getfield org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder.this$0:Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/apache/lucene/spatial/spatial4j/Geo3dShapeFactory$Geo3dPointBuilder<Lorg/locationtech/spatial4j/shape/ShapeFactory$PolygonBuilder;>;Lorg/locationtech/spatial4j/shape/ShapeFactory$PolygonBuilder;
SourceFile: "Geo3dShapeFactory.java"
NestHost: org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory
InnerClasses:
  private Geo3dPointBuilder = org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPointBuilder of org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory
  private Geo3dPolygonBuilder = org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder of org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory
  Geo3dHoleBuilder = org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder$Geo3dHoleBuilder of org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory$Geo3dPolygonBuilder
  public PolygonDescription = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  public abstract PolygonBuilder = org.locationtech.spatial4j.shape.ShapeFactory$PolygonBuilder of org.locationtech.spatial4j.shape.ShapeFactory
  public abstract HoleBuilder = org.locationtech.spatial4j.shape.ShapeFactory$PolygonBuilder$HoleBuilder of org.locationtech.spatial4j.shape.ShapeFactory$PolygonBuilder