A {@link CatalogGroup} representing a collection of datasets queried from an OGC Catalog Service (CSW) server.

@alias CswCatalogGroup
@constructor
@extends CatalogGroup

@param {Terria} terria The Terria instance.
195968
function(terria) {
  CatalogGroup.call(this, terria, "csw");

  /**
   * Gets or sets the URL of the CSW server.  This property is observable.
   * @type {String}
   */
  this.url = "";

  /**
   * Gets or sets the template XML string to POST to the CSW server to query for catalog items.  If this property is undefined,
   * {@link CswCatalogGroup.defaultGetRecordsTemplate} is used.  The XML string should have a `{startPosition}` placeholder to be
   * replaced with the next start position in order to allow incremental paging of results.
   * This property is observable.
   * @type {String}
   */
  this.getRecordsTemplate = undefined;

  /**
   * True to allow WMS resources to be added to the catalog; otherwise, false.
   * @type {Boolean}
   * @default true
   */
  this.includeWms = true;

  /**
   * Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the URI is a WMS resource.
   * @type {RegExp}
   */
  this.wmsResourceFormat = /\bwms\b/i;

  /**
   * True to allow KML resources to be added to the catalog; otherwise, false.
   * @type {Boolean}
   * @default false
   */
  this.includeKml = false;

  /**
   * Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the resource is a KML resource.
   * @type {RegExp}
   */
  this.kmlResourceFormat = /\bkml\b/i;

  /**
   * True to allow CSV resources to be added to the catalog; otherwise, false.
   * @type {Boolean}
   */
  this.includeCsv = false;

  /**
   * Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the resource is a CSV resource.
   * @type {RegExp}
   */
  this.csvResourceFormat = /\bcsv-geo-/i;

  /**
   * True to allow ESRI Map resources to be added to the catalog; otherwise, false.
   * @type {Boolean}
   * @default false
   */
  this.includeEsriMapServer = false;

  /**
   * Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the resource is an Esri MapServer resource.
   * @type {RegExp}
   */
  this.esriMapServerResourceFormat = /\besri rest\b/i;

  /**
   * True to allow GeoJSON resources to be added to the catalog; otherwise, false.
   * @type {Boolean}
   * @default false
   */
  this.includeGeoJson = false;

  /**
   * Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the resource is a GeoJSON resource.
   * @type {RegExp}
   */
  this.geoJsonResourceFormat = /\bgeojson\b/i;

  /**
   * Gets or sets a list of key value pairs that will be used to group resources returned from the catalog. The keys are used to match elements in the metadata and the values are used as names for the groups of resources to be created.
   * @type {RegExp}
   */
  this.metadataGroups = [];

  /**
   * Gets or sets a description of a domain that will be pulled from the CSW service and used to define the metadataGroups. The domain is obtained by querying the CSW server for a particular property - the values of the property form the domain, the values are assumed to define a hierarchy eg. Wave Models | Wave Energy Flux - which is a two level hierarchy of groups that will be used to classify metadata records.
   * @type {Object}
   */
  this.domainSpecification = undefined;

  /**
   * True to allow OGC:WPS service resources to be added to the catalog; otherwise, false.
   * @type {Boolean}
   * @default false
   */
  this.includeWps = false;

  /**
   * Gets or sets a regular expression that, when it matches the protocol attribute of a URI element of a record, indicates that the resource is a WPS resource.
   * @type {RegExp}
   */
  this.wpsResourceFormat = /\bwps\b/i;

  /**
   * Gets or sets a hash of properties that will be set on the item created from the CKAN resource.
   * For example, { "treat404AsError": false }
   * @type {Object}
   */
  this.itemProperties = undefined;

  knockout.track(this, [
    "url",
    "getRecordsParameters",
    "includeWms",
    "includeKml",
    "includeCsv",
    "includeEsriMapServer",
    "includeGeoJson",
    "includeWps",
    "itemProperties"
  ]);
}
976945
function(terria) {
  if (!defined(terria)) {
    throw new DeveloperError("terria is required");
  }

  this._terria = terria;

  /**
   * Gets or sets the name of the item.  This property is observable.
   * @type {String}
   */
  this.name = "Unnamed Item";

  /**
   * Gets or sets the description of the item.  This property is observable.
   * @type {String}
   */
  this.description = "";

  /**
   * Gets or sets the array of section titles and contents for display in the layer info panel.
   * In future this may replace 'description' above - this list should not contain
   * sections named 'description' or 'Description' if the 'description' property
   * is also set as both will be displayed.
   * The object is of the form {name:string, content:string}.
   * Content will be rendered as Markdown with HTML.
   * This property is observable.
   * @type {Object[]}
   * @default []
   */
  this.info = [];

  /**
   * Gets or sets the array of section titles definining the display order of info sections.  If this property
   * is not defined, {@link DataPreviewSections}'s DEFAULT_SECTION_ORDER is used.  This property is observable.
   * @type {String[]}
   */
  this.infoSectionOrder = undefined;

  /**
   * Gets or sets a value indicating whether this member was supplied by the user rather than loaded from one of the
   * {@link Terria#initSources}.  User-supplied members must be serialized completely when, for example,
   * serializing enabled members for sharing.  This property is observable.
   * @type {Boolean}
   * @default true
   */
  this.isUserSupplied = true;

  /**
   * Gets or sets a value indicating whether this item is kept above other non-promoted items.
   * This property is observable.
   * @type {Boolean}
   * @default false
   */
  this.isPromoted = false;

  /**
   * Gets or sets a value indicating whether this item is hidden from the catalog.  This
   * property is observable.
   * @type {Boolean}
   * @default false
   */
  this.isHidden = false;

  /**
   * A message object that is presented to the user when an item or group is initially clicked
   * The object is of the form {title:string, content:string, key: string, confirmation: boolean, confirmText: string, width: number, height: number}.
   * This property is observable.
   * @type {Object}
   */
  this.initialMessage = undefined;

  /**
   * Gets or sets the cache duration to use for proxied URLs for this catalog member.  If undefined, proxied URLs are effectively cachable
   * forever.  The duration is expressed as a Varnish-like duration string, such as '1d' (one day) or '10000s' (ten thousand seconds).
   * @type {String}
   */
  this.cacheDuration = undefined;

  /**
   * Gets or sets whether or not this member should be forced to use a proxy.
   * This property is not observable.
   * @type {Boolean}
   */
  this.forceProxy = false;

  /**
   * Gets or sets the dictionary of custom item properties. This property is observable.
   * @type {Object}
   */
  this.customProperties = {};

  /**
   * An optional unique id for this member, that is stable across renames and moves.
   * Use uniqueId to get the canonical unique id for this CatalogMember, which is present even if there is no id.
   * @type {String}
   */
  this.id = undefined;

  /**
   * An array of all possible keys that can be used to match to this catalog member when specified in a share link -
   * used for maintaining backwards compatibility when adding or changing {@link CatalogMember#id}.
   *
   * @type {String[]}
   */
  this.shareKeys = undefined;

  /**
   * The parent {@link CatalogGroup} of this member.
   *
   * @type {CatalogGroup}
   */
  this.parent = undefined;

  /**
   * A short report to show on the now viewing tab.  This property is observable.
   * @type {String}
   */
  this.shortReport = undefined;

  /**
   * The list of collapsible sections of the short report.  Each element of the array is an object literal
   * with a `name` and `content` property.
   * @type {ShortReportSection[]}
   */
  this.shortReportSections = [];

  /*
   * Gets or sets a value indicating whether this data source is currently loading.  This property is observable.
   * @type {Boolean}
   */
  this.isLoading = false;

  /**
   * Whether this catalog member is waiting for a disclaimer to be accepted before showing itself.
   *
   * @type {boolean}
   */
  this.isWaitingForDisclaimer = false;

  /**
   * Indicates that the source of this data should be hidden from the UI (obviously this isn't super-secure as you
   * can just look at the network requests).
   *
   * @type {boolean}
   */
  this.hideSource = false;

  /**
   * The names of items in the {@link CatalogMember#info} array that contain details of the source of this
   * CatalogMember's data. This should be overridden by children of this class.
   *
   * @type {Array}
   * @private
   */
  this._sourceInfoItemNames = [];

  /**
   * The name of the item to show in the catalog, if different from `name`. Default undefined.
   * This property is observed.
   * @type {String}
   * @private
   */
  this._nameInCatalog = undefined;

  this._loadingPromise = undefined;

  /** Lookup table for _sourceInfoItemNames, access through {@link CatalogMember#_infoItemsWithSourceInfoLookup} */
  this._memoizedInfoItemsSourceLookup = undefined;

  knockout.track(this, [
    "name",
    "info",
    "infoSectionOrder",
    "description",
    "isUserSupplied",
    "isPromoted",
    "initialMessage",
    "isHidden",
    "cacheDuration",
    "customProperties",
    "shortReport",
    "shortReportSections",
    "isLoading",
    "isWaitingForDisclaimer",
    "_nameInCatalog"
  ]);

  knockout.defineProperty(this, "nameSortKey", {
    get: function() {
      var parts = this.nameInCatalog.split(/(\d+)/);
      return parts.map(function(part) {
        var parsed = parseInt(part, 10);
        if (parsed === parsed) {
          return parsed;
        } else {
          return part.trim().toLowerCase();
        }
      });
    }
  });

  /**
   * Gets or sets the name of this catalog member in the catalog. By default this is just `name`, but can be overridden.
   * @member {String} nameInCatalog
   * @memberOf CatalogMember.prototype
   */
  knockout.defineProperty(this, "nameInCatalog", {
    get: function() {
      return defaultValue(this._nameInCatalog, this.name);
    },
    set: function(value) {
      this._nameInCatalog = value;
    }
  });
}
1326071
@Override
    public IEntityGroupStore newGroupStore(ComponentGroupServiceDescriptor svcDescriptor)
            throws GroupsException {
        FileSystemGroupStore fsGroupStore = (FileSystemGroupStore) getGroupStore();
        String groupsRoot = (String) svcDescriptor.get("groupsRoot");
        if (groupsRoot != null) {
            fsGroupStore.setGroupsRootPath(groupsRoot);
        }
        return fsGroupStore;
    }
1292744
function(terria, scene, handler, keyboardModifier) {
  this._terria = terria;
  this._scene = scene;
  this._ellipsoid = scene.globe.ellipsoid;
  this._finishHandler = handler;
  this._mouseHandler = new ScreenSpaceEventHandler(scene.canvas, false);
  this._stopHandler = undefined;
  this._interHandler = undefined;
  this._dataSource = undefined;
  this._click1 = undefined;
  this._click2 = undefined;
  this.active = false;
  this.keyboardModifier = defaultValue(
    keyboardModifier,
    KeyboardEventModifier.SHIFT
  );
}
1075566
function(terria) {
  ImageryLayerCatalogItem.call(this, terria);

  /**
   * Gets or sets the style of the Bing Maps map to use.
   * @type {BingMapsStyle}
   */
  this.mapStyle = BingMapsStyle.AERIAL;

  /**
   * Gets or sets the Bing Maps API key to use.  If this property is undefined,
   * {@link BingMapsApi.getKey} is used.
   * @type {String}
   */
  this.key = undefined;

  knockout.track(this, ["mapStyle", "key"]);
}
1261218
public final void setItsCatalog(final CatalogGs pCatalog) {
    this.itsCatalog = pCatalog;
    if (this.itsId == null) {
      this.itsId = new SeSrCaId();
    }
    this.itsId.setItsCatalog(this.itsCatalog);
  }
854516
def newCatalog(sgml):
    
    ret = libxml2mod.xmlNewCatalog(sgml)
    if ret is None:raise treeError('xmlNewCatalog() failed')
    return catalog(_obj=ret)
86787
public static CmsResource createModelGroup(CmsObject cms, CmsADEConfigData configData) throws CmsException {

        CmsResourceTypeConfig typeConfig = configData.getResourceType(
            CmsResourceTypeXmlContainerPage.MODEL_GROUP_TYPE_NAME);
        return typeConfig.createNewElement(cms, configData.getBasePath());
    }
737235
protected <T> T processSelectGroup(T obj, String groupName, Collection<CpoWhere> wheres, Collection<CpoOrderBy> orderBy, Collection<CpoNativeFunction> nativeExpressions, Session sess) throws CpoException {
    T criteriaObj = obj;
    boolean recordsExist = false;
    Logger localLogger = obj == null ? logger : LoggerFactory.getLogger(obj.getClass());

    int recordCount = 0;
    int attributesSet = 0;

    T rObj = null;

    if (obj == null) {
      throw new CpoException("NULL Object passed into retrieveBean");
    }

    try {
      CpoClass cpoClass = metaDescriptor.getMetaClass(criteriaObj);
      List<CpoFunction> functions = cpoClass.getFunctionGroup(CpoAdapter.RETRIEVE_GROUP, groupName).getFunctions();

      localLogger.info("=================== Class=<" + criteriaObj.getClass() + "> Type=<" + CpoAdapter.RETRIEVE_GROUP + "> Name=<" + groupName + "> =========================");

      try {
        rObj = (T) obj.getClass().newInstance();
      } catch (IllegalAccessException iae) {
        localLogger.error("=================== Could not access default constructor for Class=<" + obj.getClass() + "> ==================");
        throw new CpoException("Unable to access the constructor of the Return Object", iae);
      } catch (InstantiationException iae) {
        throw new CpoException("Unable to instantiate Return Object", iae);
      }

      for (CpoFunction cpoFunction : functions) {

        CassandraBoundStatementFactory cbsf = new CassandraBoundStatementFactory(sess, this, cpoClass, cpoFunction, criteriaObj, wheres, orderBy, nativeExpressions);
        BoundStatement boundStatement = cbsf.getBoundStatement();

        // insertions on
        // selectgroup
        ResultSet rs = sess.execute(boundStatement);
        cbsf.release();

        ColumnDefinitions columnDefs = rs.getColumnDefinitions();

        if ((columnDefs.size() == 2) && "CPO_ATTRIBUTE".equalsIgnoreCase(columnDefs.getName(1)) && "CPO_VALUE".equalsIgnoreCase(columnDefs.getName(2))) {
          for(Row row : rs) {
            recordsExist = true;
            recordCount++;
            CpoAttribute attribute = cpoClass.getAttributeData(row.getString(0));

            if (attribute != null) {
              attribute.invokeSetter(rObj, new ResultSetCpoData(CassandraMethodMapper.getMethodMapper(), row, attribute, 1));
              attributesSet++;
            }
          }
        } else if (!rs.isExhausted()) {
          recordsExist = true;
          recordCount++;
          Row row = rs.one();
          for (int k = 0; k < columnDefs.size(); k++) {
            CpoAttribute attribute = cpoClass.getAttributeData(columnDefs.getName(k));

            if (attribute != null) {
              attribute.invokeSetter(rObj, new ResultSetCpoData(CassandraMethodMapper.getMethodMapper(), row, attribute, k));
              attributesSet++;
            }
          }

          if (rs.one() != null) {
            String msg = "ProcessSelectGroup(Object, String) failed: Multiple Records Returned";
            localLogger.error(msg);
            throw new CpoException(msg);
          }
        }
        criteriaObj = rObj;
      }

      if (!recordsExist) {
        rObj = null;
        localLogger.info("=================== 0 Records - 0 Attributes - Class=<" + criteriaObj.getClass() + "> Type=<" + CpoAdapter.RETRIEVE_GROUP + "> Name=<" + groupName + "> =========================");
      } else {
        localLogger.info("=================== " + recordCount + " Records - " + attributesSet + " Attributes - Class=<" + criteriaObj.getClass() + ">  Type=<" + CpoAdapter.RETRIEVE_GROUP + "> Name=<" + groupName + "> =========================");
      }
    } catch (Throwable t) {
      String msg = "ProcessSeclectGroup(Object) failed: " + ExceptionHelper.getLocalizedMessage(t);
      localLogger.error(msg, t);
      throw new CpoException(msg, t);
    }

    return rObj;
  }
959169
@Override
    public IComponentGroupService newGroupService(ComponentGroupServiceDescriptor svcDescriptor)
            throws GroupsException {
        try {
            return new ReferenceIndividualGroupService(svcDescriptor);
        } catch (GroupsException ge) {
            log.error(ge.getMessage(), ge);
            throw new GroupsException(ge);
        }
    }
64096
@Override
    public IEntityGroup newGroup(Class type, Name serviceName) throws GroupsException {
        return getComponentService(serviceName).newGroup(type);
    }
49559
function findGroup(catalogGroup, keywordsGroups, record) {
  for (var i = 0; i < keywordsGroups.length; i++) {
    var kg = keywordsGroups[i];
    var fields = record[kg.field];
    var matched = false;
    if (defined(fields)) {
      if (fields instanceof String || typeof fields === "string") {
        fields = [fields];
      }
      for (var j = 0; j < fields.length; j++) {
        var field = fields[j];
        if (matchValue(kg.value, field, kg.regex)) {
          matched = true;
          break;
        }
      }
    }
    if (matched) {
      var newGroup = addGroupIfNotAlreadyPresent(
        kg.group ? kg.group : kg.value,
        catalogGroup
      );
      if (kg.children && defined(newGroup)) {
        // recurse to see if it fits into any of the children
        catalogGroup = findGroup(newGroup, kg.children, record);
        if (!defined(catalogGroup)) {
          //console.log("No match in children for record "+record.title+"::"+record.subject+"::"+record.title+", will assign to "+newGroup.name);
          catalogGroup = newGroup;
        }
      } else if (defined(newGroup)) {
        catalogGroup = newGroup;
      }
      return catalogGroup;
    }
  }
}
246105
SCIMSearchResult<Group> searchGroups(Query query, AccessToken accessToken) {
        return searchResources(query, accessToken);
    }
411146
function assembleSeriesWithCategoryAxis(series) {
    var tables = [];
    zrUtil.each(series, function (group, key) {
        var categoryAxis = group.categoryAxis;
        var valueAxis = group.valueAxis;
        var valueAxisDim = valueAxis.dim;

        var headers = [' '].concat(zrUtil.map(group.series, function (series) {
            return series.name;
        }));
        var columns = [categoryAxis.model.getCategories()];
        zrUtil.each(group.series, function (series) {
            columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {
                return val;
            }));
        });
        // Assemble table content
        var lines = [headers.join(ITEM_SPLITER)];
        for (var i = 0; i < columns[0].length; i++) {
            var items = [];
            for (var j = 0; j < columns.length; j++) {
                items.push(columns[j][i]);
            }
            lines.push(items.join(ITEM_SPLITER));
        }
        tables.push(lines.join('\n'));
    });
    return tables.join('\n\n' + BLOCK_SPLITER + '\n\n');
}
1323773
function add_group() {
    server.EntryGroupNew(function(err, path) {
      if (err) {
        sails.log.error('DBus: Could not call org.freedesktop.Avahi.Server.EntryGroupNew');
        return;
      }
      service.getInterface(
        path,
        avahi.DBUS_INTERFACE_ENTRY_GROUP.value,
        function (
          err,
          newGroup
        ) {
          group = newGroup;
          add_service();
        }
      )
    });
  }
616697
function WebProcessingServiceCatalogFunction(terria) {
  CatalogFunction.call(this, terria);

  this._statusSupported = false;
  this._storeSupported = false;

  /**
   * Gets or sets the URL of the WPS server.  This property is observable.
   * @type {String}
   */
  this.url = undefined;

  /**
   * Gets or sets the identifier of this WPS process.  This property is observable.
   * @type {String}
   */
  this.identifier = undefined;

  /**
   * Gets or sets whether to use key value pairs (KVP) embedded in Execute URL, or whether to make a POST request
   * with XML data.
   * @type {Boolean}
   */
  this.executeWithHttpGet = undefined;

  knockout.track(this, [
    "_parameters",
    "url",
    "identifier",
    "inputs",
    "executeWithHttpGet"
  ]);
}
505168
function Group(config) {
  if (!(this instanceof Group)) {
    return new Group(config);
  }

  Base.call(this, config);
  this.is('Group');
  this.use(utils.option());
  this.use(utils.plugin());
  this.init();
}