code: def wrap(cls, root, refobjinter, refobjects):
          
          tracks = []
          for r in refobjects:
              track = cls(root=root, refobjinter=refobjinter, refobj=r)
              tracks.append(track)
  
          for t in tracks:
              parentrefobj = refobjinter.get_parent(t._refobj)
              if parentrefobj:
                  parentreftrack = root.get_reftrack(parentrefobj)
              else:
                  parentreftrack = None
              t.set_parent(parentreftrack)
              t.fetch_new_children()
              t.update_restrictions()
              t.emit_data_changed()
          return tracks
docs: Wrap the given refobjects in a :class:`Reftrack` instance
          and set the right parents
  
          This is the preferred method for creating refobjects. Because you cannot set
          the parent of a :class:`Reftrack` before the parent has been wrapped itselfed.
  
          :param root: the root that groups all reftracks and makes it possible to search for parents
          :type root: :class:`ReftrackRoot`
          :param refobjinter: a programm specific reftrack object interface
          :type refobjinter: :class:`RefobjInterface`
          :param refobjects: list of refobjects
          :type refobjects: list
          :returns: list with the wrapped :class:`Reftrack` instances
          :rtype: list
          :raises: None