From 70662b2dc59ecf0da6e45c6fd49336daf4e651be Mon Sep 17 00:00:00 2001
From: JotaJota96 <jjap96@gmail.com>
Date: Tue, 17 Sep 2019 03:52:51 -0300
Subject: [PATCH] Se quitaron los static getNuevoID

---
 .../src/Logica/Clases/Administrador.java      |  8 ------
 .../src/Logica/Clases/Canal.java              | 26 +++++++++----------
 .../src/Logica/Clases/Comentario.java         | 14 +++++-----
 .../Logica/Clases/ListaDeReproduccion.java    | 11 ++++----
 .../src/Logica/Clases/Usuario.java            | 14 +++++++++-
 .../src/Logica/Clases/Video.java              | 22 +++++++---------
 6 files changed, 47 insertions(+), 48 deletions(-)

diff --git a/UyTube_aplicacion/src/Logica/Clases/Administrador.java b/UyTube_aplicacion/src/Logica/Clases/Administrador.java
index 92b3b06..ba5036f 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Administrador.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Administrador.java
@@ -1,17 +1,13 @@
 package Logica.Clases;
 
 import java.io.Serializable;
-import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
 
 @Entity
 @Table(name="administrador")
 public class Administrador extends Persona implements Serializable{
-    private static int contadorAdministrador = 1;
     
     @Id
     // No logre hacer que el id fuera auto-incremental, no se por que, probe de todo y no pude
@@ -30,10 +26,6 @@ public class Administrador extends Persona implements Serializable{
         this.id = id;
     }
     
-    public static int getNuevoID(){
-        return contadorAdministrador++;
-    }
-
     public int getIdAdmin() {
         return id;
     }
diff --git a/UyTube_aplicacion/src/Logica/Clases/Canal.java b/UyTube_aplicacion/src/Logica/Clases/Canal.java
index 8485ffc..b869778 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Canal.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Canal.java
@@ -16,17 +16,18 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
+import javax.persistence.MapKeyColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 @Entity
 @Table(name = "canal")
 public class Canal implements Serializable {
-    private static int contadorCanal = 1;
     
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
@@ -51,6 +52,9 @@ public class Canal implements Serializable {
     @JoinColumn(name = "id_canal")
     private Map<Integer, Video> misVideos;
 
+    @Column(name = "eliminado")
+    private boolean eliminado;
+    
     //-------------------------------------------------------------------------------------
     public Canal() {
     }
@@ -67,6 +71,7 @@ public class Canal implements Serializable {
         this.misListas = new TreeMap();
         this.misVideos = new TreeMap();
         this.actualizarListasPorDefecto(listas);
+        this.eliminado = false;
     }
 
     public int getId() {
@@ -109,10 +114,6 @@ public class Canal implements Serializable {
         this.privacidad = privacidad;
     }
 
-    public static int getNuevoId() {
-        return contadorCanal++;
-    }
-
     //-----------------------------------------------------------------------------
     public void actualizarListasPorDefecto(ArrayList<String> listas) {
         // descarta las listas que ya estan agregadas
@@ -123,8 +124,8 @@ public class Canal implements Serializable {
         }
         // agrega las que pasaron el filtro anterior
         for (String lista : listas) {
-            int nuevoID = ListaDeReproduccion.getNuevoId();
-            this.misListas.put(nuevoID, new ListaDeReproduccion(nuevoID, lista, Privacidad.PRIVADO, TipoListaDeReproduccion.POR_DEFECTO, "UNDEFINED"));
+            ListaDeReproduccion nuevaLista = new ListaDeReproduccion(0, lista, Privacidad.PRIVADO, TipoListaDeReproduccion.POR_DEFECTO, "UNDEFINED");
+            this.misListas.put(nuevaLista.getId(), nuevaLista);
         }
     }
 
@@ -145,7 +146,6 @@ public class Canal implements Serializable {
     }
 
     public void agregarListaParticular(DtListaDeReproduccion listaReproduccion) {
-        int idLdr = ListaDeReproduccion.getNuevoId();
         if (listaReproduccion == null){
             throw new RuntimeException("La lista de reprodccion es null");
         }
@@ -167,12 +167,12 @@ public class Canal implements Serializable {
          }
          
         ListaDeReproduccion ldr = new ListaDeReproduccion(
-                idLdr, 
+                0, 
                 listaReproduccion.getNombre(), 
                 listaReproduccion.getPrivacidad(), 
                 listaReproduccion.getTipo(), 
                 listaReproduccion.getCategoria());
-        this.misListas.put(idLdr, ldr);
+        this.misListas.put(ldr.getId(), ldr);
     }
 
     public void quitarValoracion(int idVideo, String nickname) {
@@ -220,8 +220,8 @@ public class Canal implements Serializable {
              }
          }
          
-        int idVideo = Video.getNuevoId();
-        Video vd = new Video(idVideo, 
+        Video vd = new Video(
+                0, 
                 video.getNombre(), 
                 video.getDescripcion(), 
                 video.getDuracion(), 
@@ -235,7 +235,7 @@ public class Canal implements Serializable {
              vd.setPrivacidad(Privacidad.PRIVADO);
          }
         
-        this.misVideos.put(idVideo, vd);
+        this.misVideos.put(vd.getId(), vd);
     }
 
     public void agregarVideoALista(int id, Video video) {
diff --git a/UyTube_aplicacion/src/Logica/Clases/Comentario.java b/UyTube_aplicacion/src/Logica/Clases/Comentario.java
index f1e297a..69680a8 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Comentario.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Comentario.java
@@ -9,6 +9,7 @@ import javax.persistence.Basic;
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
@@ -20,8 +21,7 @@ import javax.persistence.Table;
 @Entity
 @Table(name = "comentario")
 public class Comentario implements Serializable {
-    private static int contadorComentarios = 1;
-
+    
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     @Column(name = "id")
@@ -41,7 +41,9 @@ public class Comentario implements Serializable {
     @JoinColumn(name = "nick_usuario")
     private Usuario usr;
     
-    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
+    @OneToMany(cascade = CascadeType.ALL, 
+            orphanRemoval = true,
+            fetch = FetchType.LAZY)
     @JoinColumn(name = "id_com_padre")
     private List<Comentario> misComentario;
     
@@ -64,10 +66,6 @@ public class Comentario implements Serializable {
         this.misComentario = new ArrayList();
     }
 
-    public static int getNuevoID() {
-        return contadorComentarios++;
-    }
-
     public int getId() {
         return id;
     }
@@ -99,7 +97,7 @@ public class Comentario implements Serializable {
             throw new RuntimeException("Usuario No puede ser null");
         }
         if (this.id == idComPadre) {
-            Comentario com = new Comentario(Comentario.getNuevoID(),
+            Comentario com = new Comentario(0,
                     dtC.getFecha(),
                     dtC.getTexto(),
                     this.nivelSubComentario + 1,
diff --git a/UyTube_aplicacion/src/Logica/Clases/ListaDeReproduccion.java b/UyTube_aplicacion/src/Logica/Clases/ListaDeReproduccion.java
index 7c6f78f..295794f 100644
--- a/UyTube_aplicacion/src/Logica/Clases/ListaDeReproduccion.java
+++ b/UyTube_aplicacion/src/Logica/Clases/ListaDeReproduccion.java
@@ -13,18 +13,19 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.JoinTable;
 import javax.persistence.ManyToMany;
+import javax.persistence.MapKeyColumn;
 import javax.persistence.Table;
 
 @Entity
 @Table(name = "lista_de_reproduccion")
 public class ListaDeReproduccion implements Serializable {
-    private static int contadorListasDeReproduccion = 1;
     
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
@@ -51,6 +52,9 @@ public class ListaDeReproduccion implements Serializable {
             inverseJoinColumns = @JoinColumn(name = "id_video"))
     private Map<Integer, Video> misVideos;
     
+    @Column(name = "eliminado")
+    private boolean eliminado;
+    
     //-----------------------------------------------------------------------------
     public ListaDeReproduccion() {
     }
@@ -74,12 +78,9 @@ public class ListaDeReproduccion implements Serializable {
         this.tipo = tipo;
         this.categoria = categoria;
         this.misVideos = new TreeMap();
+        this.eliminado = false;
     }
 
-    public static int getNuevoId() {
-        return contadorListasDeReproduccion++;
-    }
-    
     public int getId() {
         return id;
     }
diff --git a/UyTube_aplicacion/src/Logica/Clases/Usuario.java b/UyTube_aplicacion/src/Logica/Clases/Usuario.java
index 0b0e54c..6610fee 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Usuario.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Usuario.java
@@ -8,9 +8,11 @@ import javax.persistence.Basic;
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.JoinTable;
+import javax.persistence.MapKeyColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
@@ -35,6 +37,14 @@ public class Usuario extends Persona{
     @Column(name = "seguidores")
     private int seguidores;
     
+    @Column(name = "eliminado")
+    private boolean eliminado;
+    
+    @Basic
+    @Column(name = "fecha_eliminado")
+    private Date fechaEliminado;
+    
+    
     @OneToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "id_canal")
     private Canal MiCanal;
@@ -78,9 +88,11 @@ public class Usuario extends Persona{
         this.fechaNacimiento = fechaNacimiento;
         this.imagen = imagen;
         this.seguidores = 0;
-        this.MiCanal = new Canal(Canal.getNuevoId(),DTC.getNombre(),DTC.getDescripcion(),DTC.getPrivacidad(), listas);
+        this.MiCanal = new Canal(0,DTC.getNombre(),DTC.getDescripcion(),DTC.getPrivacidad(), listas);
         this.misSeguidores = new TreeMap();
         this.seguidos = new TreeMap();
+        this.eliminado = false;
+        this.fechaEliminado = null;
     }
 
     public String getNickname() {
diff --git a/UyTube_aplicacion/src/Logica/Clases/Video.java b/UyTube_aplicacion/src/Logica/Clases/Video.java
index d06af75..a1fb7ed 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Video.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Video.java
@@ -17,17 +17,18 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
+import javax.persistence.MapKeyColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 @Entity
 @Table(name = "video")
 public class Video implements Serializable {
-    private static int idActual = 1;
     
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
@@ -75,15 +76,15 @@ public class Video implements Serializable {
     @JoinColumn(name = "id_video")
     private Map<Integer, Comentario> comentarios;
     
+    @Column(name = "eliminado")
+    private boolean eliminado;
+    
     //------------------------------------------------------------------------
     public Video(){
         
     }
     /********************** Constructor *********************/
     public Video(int _id, String _nombre, String _descripcion,Time _duracion, Date _fechaPublicacion,String _urlVideoOriginal,String _categoria ){
-        if (_id < 0) {
-            throw new RuntimeException("Error, el id del video es un negativo o cero.");
-        }
         if (_nombre == "") {
             throw new RuntimeException("Error, el nombre del video está vacío");
         }
@@ -108,7 +109,8 @@ public class Video implements Serializable {
         this.urlVideoOriginal = _urlVideoOriginal;    
         this.categoria = _categoria;
         this.valoraciones = new ArrayList<Valoracion>();
-        this.comentarios = new TreeMap<Integer, Comentario>();        
+        this.comentarios = new TreeMap<Integer, Comentario>();
+        this.eliminado = false;
     }
     
     /** Agregar un nuevo comentario **/
@@ -120,9 +122,8 @@ public class Video implements Serializable {
             throw new RuntimeException("El usuario es null");
         }
         
-        int nuevoId = Comentario.getNuevoID();
-        Comentario nuevoComentario = new Comentario(nuevoId, dtComentario.getFecha(), dtComentario.getTexto(), 0, usuario);
-        comentarios.put(nuevoId, nuevoComentario);
+        Comentario nuevoComentario = new Comentario(0, dtComentario.getFecha(), dtComentario.getTexto(), 0, usuario);
+        comentarios.put(nuevoComentario.getId(), nuevoComentario);
     }
     
     /*  Agregar un subcomentario a un comentario existente  */
@@ -284,11 +285,6 @@ public class Video implements Serializable {
     }
     
     
-    public static int getNuevoId(){
-        int nuevoId = idActual ++;
-        return nuevoId;        
-    }
-    
 //============================  Get and Set ================================
     public int getId() {
         return id;
-- 
GitLab