':param protocolTreeNode: ProtocolTreeNode
:return: bool'

def __eq__(self, protocolTreeNode):

    if ((protocolTreeNode.__class__ == ProtocolTreeNode) and (self.tag == protocolTreeNode.tag) and (self.data == protocolTreeNode.data) and (self.attributes == protocolTreeNode.attributes) and (len(self.getAllChildren()) == len(protocolTreeNode.getAllChildren()))):
        found = False
        for c in self.getAllChildren():
            for c2 in protocolTreeNode.getAllChildren():
                if (c == c2):
                    found = True
                    break
            if (not found):
                return False
        found = False
        for c in protocolTreeNode.getAllChildren():
            for c2 in self.getAllChildren():
                if (c == c2):
                    found = True
                    break
            if (not found):
                return False
        return True
    return False
