def do_copy(self, new_ids=False, id_scope=None, id_remap=None):
        cp = DBAbstraction(self._db_id,
                           self._db_entity_type,
                           self._db_name,
                           self._db_last_modified)
        if self._db_actions is None:
            cp._db_actions = []
        else:
            cp._db_actions = [v.do_copy(new_ids, id_scope, id_remap) for v in self._db_actions]
        if self._db_tags is None:
            cp._db_tags = []
        else:
            cp._db_tags = [v.do_copy(new_ids, id_scope, id_remap) for v in self._db_tags]
        
        # set new ids
        if new_ids:
            new_id = id_scope.getNewId(self.vtType)
            if self.vtType in id_scope.remap:
                id_remap[(id_scope.remap[self.vtType], self._db_id)] = new_id
            else:
                id_remap[(self.vtType, self._db_id)] = new_id
            cp._db_id = new_id
        
        # recreate indices and set flags
        for v in cp._db_actions:
            cp.db_actions_id_index[v._db_id] = v
        for v in cp._db_tags:
            cp.db_tags_id_index[v._db_id] = v
            cp.db_tags_name_index[v._db_name] = v
        cp.is_dirty = self.is_dirty
        cp.is_new = self.is_new
        return cp
dataset/ETHPy150Open VisTrails/VisTrails/vistrails/db/versions/v0_9_1/domain/auto_gen.py/DBAbstraction.do_copy/original