Esempio n. 1
0
class ZImageIDOHostsWrapper:

    def __init__(self, filter):
        self.hostNodes = ZSortedList(ZHostNodeComparator(filter))
        self.imageFilter = filter
    # end __init__()

    def addImageIDO(self, imageIDO):
        if self.imageFilter.matches(imageIDO):
            hostNode = self._findHostNode(imageIDO.getHost())
            if not hostNode:
                hostNode = self._createHostNode(imageIDO.getHost())
            if hostNode.addImageIDO(imageIDO):
                return True
        else:
            return False
    # end addImageIDO()

    def removeImageIDO(self, imageIDO):
        for hostNode in self.hostNodes:
            if hostNode.removeImageIDO(imageIDO):
                if hostNode.isEmpty():
                    self.hostNodes.remove(hostNode)
                return True
        return False
    # end removeImageIDO()

    def _findHostNode(self, host):
        for hostNode in self.hostNodes:
            if hostNode.getHost() == host:
                return hostNode
        return None
    # end _findHostNode()
    
    def _createHostNode(self, host):
        hostNode = ZHostNode(host)
        self.hostNodes.add(hostNode)
        return hostNode
    # end _createHostNode()

    def __len__(self):
        return len(self.hostNodes)
    # end __len__()

    def __contains__(self, key):
        return key in self.hostNodes
    # end __contains__()

    # Iterator over all of the attributes names (not in namespaces).
    def __iter__(self):
        return self.hostNodes.__iter__()
    # end __iter__()

    def __getitem__(self, key):
        return self.hostNodes[key]
Esempio n. 2
0
class ZLinkIDOHostsWrapper:

    def __init__(self, filter):
        self.hostNodes = ZSortedList(ZHostNodeComparator(filter))
        self.linkFilter = filter
    # end __init__()

    def addLinkIDO(self, linkIDO):
        if self.linkFilter.matches(linkIDO):
            hostNode = self._findHostNode(linkIDO.getHost())
            if not hostNode:
                hostNode = self._createHostNode(linkIDO.getHost())
            return hostNode.addLinkIDO(linkIDO)
        else:
            return False
    # end addLinkIDO()

    def removeLinkIDO(self, linkIDO):
        for hostNode in self.hostNodes:
            if hostNode.removeLinkIDO(linkIDO):
                if hostNode.isEmpty():
                    self.hostNodes.remove(hostNode)
                return True
        return False
    # end removeLinkIDO()

    def _findHostNode(self, host):
        for hostNode in self.hostNodes:
            if hostNode.getHost() == host:
                return hostNode
        return None
    # end _findHostNode()

    def _createHostNode(self, host):
        hostNode = ZHostNode(host)
        self.hostNodes.add(hostNode)
        return hostNode
    # end _createHostNode()

    def __len__(self):
        return len(self.hostNodes)
    # end __len__()

    def __contains__(self, key):
        return key in self.hostNodes
    # end __contains__()

    # Iterator over all of the attributes names (not in namespaces).
    def __iter__(self):
        return self.hostNodes.__iter__()
    # end __iter__()

    def __getitem__(self, key):
        return self.hostNodes[key]