code: function (url) {
              if (!url) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "Shapefile", "constructor", "missingUrl"));
              }
  
              // Documented in defineProperties below.
              this._url = url;
  
              // Documented in defineProperties below.
              this._shapeType = null;
  
              // Documented in defineProperties below.
              this._layer = null;
  
              // Documented in defineProperties below.
              this._shapeConfigurationCallback = this.defaultShapeConfigurationCallback;
  
              this._parserCompletionCallback = this.defaultParserCompletionCallback;
  
              // Internal use only. Intentionally not documented.
              this._buffer = null;
  
              // Internal use only. Intentionally not documented.
              this.attributeFile = new DBaseFile(url.replace(".shp", ".dbf"));
  
              // Internal use only. Intentionally not documented.
              this.projectionFile = new PrjFile(url.replace(".shp", ".prj"));
  
              this.defaultPlacemarkAttributes = new PlacemarkAttributes(null);
              this.defaultShapeAttributes = new ShapeAttributes(null);
          }
docs: Constructs a shapefile object for a specified shapefile URL. Call [load]{@link Shapefile#load} to retrieve the
  shapefile and create shapes for it.
  @alias Shapefile
  @constructor
  @classdesc Parses a shapefile and creates shapes representing its contents. Points in the shapefile are
  represented by [Placemarks]{@link Placemark}, lines are represented by [Paths]{@link Path} or
  [SurfacePolylines]{@link SurfacePolyline}, and polygons
  are represented by [Polygons]{@link Polygon} or [SurfacePolygons]{@link SurfacePolygon}.
  A parser completion callback may be specified and is
  called when the shapefile is fully parsed but before shapes are created.
  <p>
  An attribute callback may also be specified to examine each record and configure the shape created for it.
  This function enables the application to assign independent attributes to each
  shape. An argument to this function provides any attributes specified in an attribute file (.dbf)
  accompanying the shapefile. That attribute file is automatically detected, retrieved and parsed along
  with the shapefile.
  @param {String} url The location of the shapefile.
  @throws {ArgumentError} If the specified URL is null or undefined.