From d298717d2d5e9a7c88e798594e952fd4ac1858eb Mon Sep 17 00:00:00 2001
From: Facundo <facu_camilo2@hotmail.com>
Date: Wed, 21 Aug 2019 19:30:43 -0300
Subject: [PATCH] comit

---
 .../src/Logica/Clases/Canal.java              | 92 +++++++++++++------
 1 file changed, 66 insertions(+), 26 deletions(-)

diff --git a/UyTube_aplicacion/src/Logica/Clases/Canal.java b/UyTube_aplicacion/src/Logica/Clases/Canal.java
index e306bb4..44df7e3 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Canal.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Canal.java
@@ -6,6 +6,7 @@ import Logica.DataType.DtListaDeReproduccion;
 import Logica.DataType.DtValoracion;
 import Logica.DataType.DtVideo;
 import Logica.DataType.DtCanal;
+import Logica.Enumerados.TipoListaDeReproduccion;
 import java.util.ArrayList;
 import java.util.Map;
 import java.util.TreeMap;
@@ -19,13 +20,13 @@ public class Canal {
     private String descripcion;
     private Privacidad privacidad;
     private Map<Integer,ListaDeReproduccion> misListas;
-    private Map<Integer,Video> Videos;
+    private Map<Integer,Video> misVideos;
     
     
     public Canal() {
         this.id = getNuevoId();
         this.misListas = new TreeMap();
-        this.Videos = new TreeMap();
+        this.misVideos = new TreeMap();
     }
     
     public Canal(int id, String nombre, String descripcion, Privacidad privacidad) {
@@ -34,7 +35,7 @@ public class Canal {
         this.descripcion = descripcion;
         this.privacidad = privacidad;
         this.misListas = new TreeMap();
-        this.Videos = new TreeMap();
+        this.misVideos = new TreeMap();
 
     }
 
@@ -74,44 +75,82 @@ public class Canal {
      return contadorCanal++;
  }
 public void actualizarListasPorDefecto(){}
-public void agregarComentarioAVideo(int id, DtComentario comentario, int idUsuario){}
-public void agregarComentarioAVideo(int id, int idComentario, DtComentario comentario, int idUsuario){}
-public void agregarListaParticular(DtListaDeReproduccion listaReproduccion){}
-public ArrayList<DtValoracion> quitarValoracion(int id, String nickname){
-    return new ArrayList();
+public void agregarComentarioAVideo(int id, DtComentario comentario, Usuario usuario){
+    this.misVideos.get(id).agregarComentario(comentario, usuario);
+}
+public void agregarComentarioAVideo(int id, int idComentario, DtComentario comentario, Usuario usuario){
+    this.misVideos.get(id).agregarComentario(idComentario, comentario, usuario);
+}
+public void agregarListaParticular(DtListaDeReproduccion listaReproduccion){
+    int id = ListaDeReproduccion.getNuevoId();
+    ListaDeReproduccion ldr = new ListaDeReproduccion(id, listaReproduccion.getNombre(), listaReproduccion.getPrivacidad(),listaReproduccion.getTipo(), listaReproduccion.getCategoria());
+    this.misListas.put(id, ldr);
+}
+public void quitarValoracion(int id, String nickname){
+    
 }
-public void agregarModificarValoracion(int id, DtValoracion valoracion, Usuario usuario){}
-public void agregarVideo(DtVideo video){}
-public void agregarVideoALista(int id, DtVideo video){}
+public void agregarModificarValoracion(int id, DtValoracion valoracion, Usuario usuario){
+    this.misVideos.get(id).agregarModificarValoracion(valoracion, usuario);
+}
+public void agregarVideo(DtVideo video){
+    int id = Video.getNuevoId();
+    Video vd = new Video(id, video.getNombre(), video.getDescripcion(), video.getDuracion(), video.getFechaPublicacion(), video.getUrlVideoOriginal(), video.getCategoria());
+    this.misVideos.put(id, vd);
+}
+public void agregarVideoALista(int id, Video video){
+    this.misListas.get(video.getId()).agregarVideoA(video);
+}
+
 public DtCanal getDT(){
     return new DtCanal(this.id, this.nombre, this.descripcion, this.privacidad);
 }
 
 
 public ArrayList<DtComentario> listarComentariosDeVideo(int id){
-    return new ArrayList();
+    return this.misVideos.get(id).listarComentarios();
 }
+
 public ArrayList<DtListaDeReproduccion> listarListasDeReproduccion(boolean x){
-    return new ArrayList();
+     ArrayList<DtListaDeReproduccion> ret = new ArrayList();
+        
+        // para cada elemento en misVideos
+        /**
+         * este for no es normal, se declara la variable m que es de tipo
+         * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+         * por todas las entradas de la coleccion.
+         * De la entrada actual se puede obtener la Key y el Valor almacenado
+         */
+        for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()){
+            // hace un getDT y lo agrega a la coleccion de retorno
+            ret.add(m.getValue().getDt());
+        }
+        
+        return ret;
 }
 public ArrayList<DtValoracion> listarValoracionesDeVideo(int id){
-    return new ArrayList();
+        return this.misVideos.get(id).listarValoraciones();
+
 }
 public ArrayList<DtVideo> listarVideos(){
-    ArrayList<DtVideo> ret = new ArrayList();
-    
-     for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()){
-            // hace un getDT y lo agrega a la coleccion de retorno
-            for (Map.Entry<Integer, Video> m : misListas.entrySet()){
+     ArrayList<DtVideo> ret = new ArrayList();
+        
+        // para cada elemento en misVideos
+        /**
+         * este for no es normal, se declara la variable m que es de tipo
+         * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+         * por todas las entradas de la coleccion.
+         * De la entrada actual se puede obtener la Key y el Valor almacenado
+         */
+        for (Map.Entry<Integer, Video> m : misVideos.entrySet()){
             // hace un getDT y lo agrega a la coleccion de retorno
             ret.add(m.getValue().getDt());
-            }
-     }
-     return ret;
+        }
+        
+        return ret;
 }
             
 public ArrayList<DtVideo> listarVideosDeListaDeReproduccion(int id){
-    return ListaDeReproduccion.
+    return this.misListas.get(id).listarVideos();
 }
 public void modificar(DtCanal canal){
         this.nombre = canal.getNombre();
@@ -119,16 +158,17 @@ public void modificar(DtCanal canal){
         this.privacidad = canal.getPrivacidad();
 }
 public void modificarListaDeReproduccion(DtListaDeReproduccion ldr){
-    
+        this.misListas.get(ldr.getId()).modificar(ldr);
 }
 public void modificarVideo(DtVideo video){} 
 public ArrayList<DtListaDeReproduccion> obtenerListasEnCategoria(String cat){
     return new ArrayList();
 }
 public DtVideo obtenerDtVideo(int id){
-    return new DtVideo();
+    return this.misVideos.get(id).getDt();
+}
+public Video obtenerVideo(int id){
 }
-//public Video obtenerVideo(int id){
   //  return new Video();
 //}
 public ArrayList<DtVideo> obtenerVideosEnCategoria(String cat){
-- 
GitLab