public Receta privatizarSiCorresponde(Usuario user) throws UsuarioException, RecetaException {

    HashSet<Receta> recetasPrivatizadas = new HashSet<Receta>();

    for (Receta receta : this.subRecetas) {
      recetasPrivatizadas.add((RecetaPrivada) receta.privatizarSiCorresponde(user));
    }

    Receta recetaClonada =
        new RecetaBuilder(this.nombre)
            .dificultad(this.dificultad)
            .temporada(this.temporada)
            .agregarSubRecetas(recetasPrivatizadas)
            .buildReceta();

    user.agregarReceta(recetaClonada);
    user.quitarReceta(this);
    return recetaClonada;
  }