示例#1
0
 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)
示例#2
0
            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]