def validate(self, pA, pB):
        """
        Validate that the two properties may be linked.
        @param pA: Endpoint (A) to link.
        @type pA: L{Endpoint}
        @param pB: Endpoint (B) to link.
        @type pB: L{Endpoint}
        @return: self
        @rtype: L{Link}
        """
        if pA in pB.links or \
           pB in pA.links:
            raise Exception('Already linked')
        dA = pA.domains()
        dB = pB.domains()
        for d in dA:
            if d in dB:
                raise Exception('Duplicate domain "%s" found' % d)
        for d in dB:
            if d in dA:
                raise Exception('Duplicate domain "%s" found' % d)
        kA = pA.keys()
        kB = pB.keys()
        for k in kA:
            if k in kB:
                raise Exception('Duplicate key %s found' % k)
        for k in kB:
            if k in kA:
                raise Exception('Duplicate key %s found' % k)
        return self
def validate ( self , pA , pB ) : if pA in pB . links or pB in pA . links : raise Exception ( 'Already linked' ) dA = pA . domains ( ) dB = pB . domains ( ) for d in dA : if d in dB : raise Exception ( 'Duplicate domain "%s" found' % d ) for d in dB : if d in dA : raise Exception ( 'Duplicate domain "%s" found' % d ) kA = pA . keys ( ) kB = pB . keys ( ) for k in kA : if k in kB : raise Exception ( 'Duplicate key %s found' % k ) for k in kB : if k in kA : raise Exception ( 'Duplicate key %s found' % k ) return self
Validate that the two properties may be linked.
        @param pA: Endpoint (A) to link.
        @type pA: L{Endpoint}
        @param pB: Endpoint (B) to link.
        @type pB: L{Endpoint}
        @return: self
        @rtype: L{Link}