diff --git a/UyTube_aplicacion/src/Logica/Clases/Administrador.java b/UyTube_aplicacion/src/Logica/Clases/Administrador.java index 92b3b066ffdf2f37bdbff3117f99498f0fb54b02..ba5036f2ffc4f57bb01c1cca771732cbe24f1441 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 8485ffc829833ff8cb206676e58f82299c54797e..b869778d398855de1d0897ba5612f57a6a762704 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 f1e297ac25d09850cba8f24d363334b4383ee976..69680a8a8fda4fa3b3d5afeb60793d6be73ad798 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 7c6f78f7358dd0a6757ecbc972b1eee54cd30022..295794f80564a8aba270c2a442c6547d4efbcd40 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 0b0e54cc47b3be86825083f6186e16ed27b06e4c..6610fee9adea379008567126d91febe808e8e261 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 d06af7528925bbd33d4f952ee0d4112dd5fa1bb3..a1fb7ed7db1debd170dba627f0fb32aba434b2f4 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;