diff --git a/UyTube_aplicacion/src/Logica/Clases/Video.java b/UyTube_aplicacion/src/Logica/Clases/Video.java index e4ddd22af6bddbade440c5f0e413f92bec90365e..427eabd5df528facdeb16be881b7730ba6116968 100644 --- a/UyTube_aplicacion/src/Logica/Clases/Video.java +++ b/UyTube_aplicacion/src/Logica/Clases/Video.java @@ -21,10 +21,13 @@ public class Video { private String categoria; private int cantLikes = 0; private int cantDisLikes = 0; - private Map<Integer, Valoracion> valoraciones; + private ArrayList<Valoracion> valoraciones; private Map<Integer, Comentario> comentarios; private static int idActual = 1; + public Video(){ + + } /********************** Constructor *********************/ public Video(int _id, String _nombre, String _descripcion,Time _duracion, Date _fechaPublicacion,String _urlVideoOriginal,String _categoria ){ this.id = _id; @@ -34,20 +37,34 @@ public class Video { this.fechaPublicacion = _fechaPublicacion; this.urlVideoOriginal = _urlVideoOriginal; this.categoria = _categoria; - this.valoraciones = new TreeMap<Integer, Valoracion>(); + this.valoraciones = new ArrayList<Valoracion>(); this.comentarios = new TreeMap<Integer, Comentario>(); } + /** Agregar un nuevo comentario **/ public void agregarComentario(DtComentario dtComentario, Usuario usuario){ - + int nuevoId = Comentario.getNuevoID(); + Comentario nuevoComentario = new Comentario(nuevoId, dtComentario.getFecha(), dtComentario.getTexto(), 0, usuario); + comentarios.put(nuevoId, nuevoComentario); } + /* Agregar un subcomentario a un comentario existente */ public void agregarComentario(int idCom, DtComentario dtComentario, Usuario usuario){ - + for (Map.Entry<Integer, Comentario> coment : comentarios.entrySet()) { + if(coment.getValue().agregarSubComentario(idCom, dtComentario, usuario)){ + break; + } + } } + /* Agrega o midifica una valoración */ public void agregarModificarValoracion(DtValoracion dtValoracion, Usuario usuario){ - + String nickname = usuario.getNickname(); + for(Valoracion val: valoraciones){ + if(val.modificar(dtValoracion, nickname)){ + break; + } + } } public DtVideo getDt(){ @@ -55,22 +72,61 @@ public class Video { } public ArrayList<DtComentario> listarComentarios(){ - // provisorio - return new ArrayList(); + ArrayList<DtComentario> listaComent = new ArrayList<DtComentario>(); + for (Map.Entry<Integer, Comentario> coment : comentarios.entrySet()) { + DtComentario dtComent = new DtComentario(coment.getValue().getId(), coment.getValue().getUsr().getNickname(), coment.getValue().getFecha(), coment.getValue().getTexto(), coment.getValue().getNivelSubComentario()); + listaComent.add(dtComent); + } + return listaComent; } public ArrayList<DtValoracion> listarValoraciones(){ - // provisorio - return new ArrayList(); - + ArrayList<DtValoracion> listaValoraciones = new ArrayList<DtValoracion>(); + for(Valoracion val: valoraciones){ + listaValoraciones.add(new DtValoracion(val.getVal(), val.getUsr().getNickname())); + } + return listaValoraciones; } public void modificar(DtVideo dtVideo){ + if(dtVideo == null){ + throw new RuntimeException("El DtVideo es vacÃo"); + } + // Perdon julio pero no entendi nada xD + + if(dtVideo.getNombre()== ""){ + throw new RuntimeException("El nombre no puede ser vacÃo"); + } + + if (dtVideo.getDescripcion() == "") { + throw new RuntimeException("La descripcion no puede ser vacÃa"); + } + + if (dtVideo.getFechaPublicacion() == null) { + throw new RuntimeException("La fecha no puede ser vacÃa"); + } + + if (dtVideo.getCategoria() == "") { + throw new RuntimeException("La categoria no puede ser vacÃa"); + } + + this.nombre = dtVideo.getNombre(); + this.descripcion = dtVideo.getDescripcion(); + this.duracion = dtVideo.getDuracion(); + this.fechaPublicacion = dtVideo.getFechaPublicacion(); + this.privacidad = dtVideo.getPrivacidad(); + this.categoria = dtVideo.getCategoria(); } + /* Obtiene la valoracion que hizo un usuario */ public DtValoracion obtenerValoracion(String nickname){ - // provisorio + for(Valoracion val: valoraciones){ + if( val.getUsr().getNickname() == nickname){ + DtValoracion dtValoracion = new DtValoracion(val.getVal(), val.getUsr().getNickname()); + return dtValoracion; + } + } return new DtValoracion(); }