def fetch_new_id(self, ):
        """Return a new id for the given reftrack to be set on the refobject

        The id can identify reftracks that share the same parent, type and element.

        :returns: A new id
        :rtype: int
        :raises: None
        """
        parent = self.get_parent()
        if parent:
            others = parent._children
        else:
            others = [r for r in self.get_root()._reftracks if r.get_parent() is None]
        others = [r for r in others
                  if r != self
                  and r.get_typ() == self.get_typ()
                  and r.get_element() == self.get_element()]
        highest = -1
        for r in others:
            identifier = r.get_id()
            if identifier > highest:
                highest = identifier
        return highest + 1
Return a new id for the given reftrack to be set on the refobject

        The id can identify reftracks that share the same parent, type and element.

        :returns: A new id
        :rtype: int
        :raises: None