public Metodologia copiar(Metodologia fuente, String nuevoNombre) {
    Metodologia copia = new Metodologia();
    HashMap<String, TipoOperacion> propiedades = new HashMap<String, TipoOperacion>();

    propiedades.put("metodologia.categorias", TipoOperacion.REPLICA_TOTAL);
    propiedades.put("categoria.procesos", TipoOperacion.REPLICA_TOTAL);
    propiedades.put("proceso.actividades", TipoOperacion.REPLICA_TOTAL);
    propiedades.put("actividad.plantillas", TipoOperacion.REPLICA_TOTAL);
    propiedades.put("plantilla.documento", TipoOperacion.REPLICA_TOTAL);

    // relaciones con objetos quedeben mantenerse no crearse
    propiedades.put("actividad.notificaciones", TipoOperacion.COPIA);
    propiedades.put("actividad.herramientas", TipoOperacion.COPIA);
    propiedades.put("actividad.rol", TipoOperacion.COPIA);
    propiedades.put("actividad.persona", TipoOperacion.COPIA);

    Utilidades.copiarObjeto(fuente, copia, propiedades);
    copia.setNombre(nuevoNombre);
    copia.setTipo("Instancia");
    dao.guardar(copia);
    actividadServicio.copiarPrecedentes(fuente.getId(), copia.getId());

    return dao.cargar(copia.getId());
  }
 public List<Metodologia> metodologiasConcretas(Metodologia metodologia) {
   return dao.metodologiasConcretas(metodologia);
 }
 public void borrar(Metodologia metodologia) {
   dao.borrar(metodologia);
 }
 public void mezlcar(Object entidad) {
   dao.mezclar(entidad);
 }
 public Metodologia cargar(Integer id) {
   return dao.cargar(id);
 }
 public List<Metodologia> listado(Metodologia metodologia) {
   return dao.listado(metodologia);
 }
 public Metodologia guardar(Metodologia metodologia) {
   return dao.guardar(metodologia);
 }