def getIndexes(self, package_id=None, resourcetype_id=None, xpath=None, group_path=None, type=None, options=None, _id=None, label=None): """ Return a list of all applicable XMLIndex objects. """ # check for grouping indexes if xpath and '#' in xpath: group_path, temp = xpath.split('#', 1) xpath = '/'.join([group_path, temp]) if type: type = INDEX_TYPES.get(type.lower(), TEXT_INDEX) return self.index_catalog.getIndexes(package_id=package_id, resourcetype_id=resourcetype_id, xpath=xpath, group_path=group_path, type=type, options=options, _id=_id, label=label)
raise InvalidParameterError(msg) # check if valid index type if type.lower() not in INDEX_TYPES: msg = "registerIndex: Invalid index type '%s'." raise InvalidParameterError(msg % type) # check for grouping indexes xpath = xpath.strip() group_path = None if '#' in xpath: try: group_path, temp = xpath.split('#') except ValueError, e: msg = "registerIndex: Invalid index expression. %s" raise InvalidParameterError(msg % str(e)) xpath = '/'.join([group_path, temp]) type = INDEX_TYPES.get(type.lower()) _, resourcetype = self.env.registry.objects_from_id(package_id, resourcetype_id) # generate index xmlindex = XmlIndex(resourcetype=resourcetype, label=label, xpath=xpath, type=type, options=options, group_path=group_path) xmlindex = self.index_catalog.registerIndex(xmlindex) return xmlindex def deleteIndex(self, xmlindex=None, _id=None): """ Remove an index using either a XMLIndex object or a index id. """ if _id: xmlindex = self.getIndexes(_id=_id)[0]