def do_copy(self, new_ids=False, id_scope=None, id_remap=None):
        cp = DBMashup.do_copy(self, new_ids, id_scope, id_remap)
        Mashup.convert(cp)
        return cp
    
    ##########################################################################
    # Serialization / Unserialization
    
#    def toXml(self, node=None):
#        """toXml(node: ElementTree.Element) -> ElementTree.Element
#           writes itself to xml
#        """
#
#        if node is None:
#            node = ElementTree.Element('mashup')
#
#        #set attributes
#        node.set('id', self.convert_to_str(self.id,'long'))
#        node.set('version', self.convert_to_str(self.version,'long'))
#        node.set('vtid', self.convert_to_str(self.vtid,'str'))
#        node.set('name', self.convert_to_str(self.name,'str'))
#        node.set('type', self.convert_to_str(self.type,'str'))
#        node.set('has_seq', self.convert_to_str(self.has_seq,'bool'))
#        for v in self.alias_list:
#            child_ = ElementTree.SubElement(node, 'alias')
#            v.toXml(child_)
#        
#        layoutnode = ElementTree.SubElement(node,'layout')
#        layoutnode.text = str(self.layout)
#        
#        geomnode = ElementTree.SubElement(node,'geometry')
#        geomnode.text = str(self.geometry)
#        
#        return node
#
#    @staticmethod
#    def fromXml(node):
#        if node.tag != 'mashup':
#            #print "node.tag != 'mashup'"
#            return None
#        #read attributes
#        data = node.get('id', None)
#        id = Mashup.convert_from_str(data, 'long')
#        data = node.get('name', None)
#        name = Mashup.convert_from_str(data, 'str')
#        data = node.get('version', None)
#        version = Mashup.convert_from_str(data, 'long')
#        data = node.get('vtid', None)
#        vtid = Mashup.convert_from_str(data, 'str')
#        data = node.get('type', None)
#        type = Mashup.convert_from_str(data, 'str')
#        data = node.get('has_seq', None)
#        seq = Component.convert_from_str(data, 'bool')
#        alias_list = []
#        layout = None
#        geometry = None
#        for child in node.getchildren():
#            if child.tag == "alias":
#                alias = Alias.fromXml(child)
#                alias_list.append(alias)
#            if child.tag == "layout":
#                layout = str(child.text).strip(" \n\t")
#            if child.tag == "geometry":
#                geometry = str(child.text).strip(" \n\t")
#        return Mashup(id=id, name=name, vtid=vtid, version=version, 
#                               alias_list=alias_list, t=type, has_seq=seq,
#                               layout=layout, geometry=geometry)
do_copy() -> Mashup 
dataset/ETHPy150Open VisTrails/VisTrails/vistrails/core/mashup/mashup.py/Mashup.do_copy