# Source: src/ol/source/staticvectorsource.js

    goog.provide('ol.source.StaticVector');

    goog.require('ol.source.FormatVector');
    goog.require('ol.source.State');

    /**
     * @constructor
     * @extends {ol.source.FormatVector}
     * @fires ol.source.VectorEvent
     * @param {olx.source.StaticVectorOptions} options Options.
     * @todo api
     */
    ol.source.StaticVector = function(options) {

      goog.base(this, {
        attributions: options.attributions,
        extent: options.extent,
        format: options.format,
        logo: options.logo,
        projection: options.projection
      });

      if (goog.isDef(options.arrayBuffer)) {
        this.addFeaturesInternal(this.readFeatures(options.arrayBuffer));
      }

      if (goog.isDef(options.doc)) {
        this.addFeaturesInternal(this.readFeatures(options.doc));
      }

      if (goog.isDef(options.node)) {
        this.addFeaturesInternal(this.readFeatures(options.node));
      }

      if (goog.isDef(options.object)) {
        this.addFeaturesInternal(this.readFeatures(options.object));
      }

      if (goog.isDef(options.text)) {
        this.addFeaturesInternal(this.readFeatures(options.text));
      }

      if (goog.isDef(options.url) || goog.isDef(options.urls)) {
        this.setState(ol.source.State.LOADING);
        if (goog.isDef(options.url)) {
          this.loadFeaturesFromURL(options.url,
              /**
               * @param {Array.<ol.Feature>} features Features.
               * @this {ol.source.StaticVector}
               */
              function(features) {
                this.addFeaturesInternal(features);
                this.setState(ol.source.State.READY);
              }, this);
        }
        if (goog.isDef(options.urls)) {
          var urls = options.urls;
          var i, ii;
          for (i = 0, ii = urls.length; i < ii; ++i) {
            this.loadFeaturesFromURL(urls[i],
                /**
                 * @param {Array.<ol.Feature>} features Features.
                 * @this {ol.source.StaticVector}
                 */
                function(features) {
                  this.addFeaturesInternal(features);
                  this.setState(ol.source.State.READY);
                }, this);
          }
        }
      }

    };
    goog.inherits(ol.source.StaticVector, ol.source.FormatVector);