import java.net.URL; import java.sql.Date; import java.util.ArrayList; public class Usuario { private String nombreUsuario; private String password; private String email; private Date fecha_nacimiento; private Date fechaIngreso; private URL urlPhoto; private String descripcion; private boolean isVerificado; private ArrayList seguidores; private ArrayList siguiendo; private ArrayList tweets; private ArrayList retweets; public ArrayList getTweets() { return this.tweets; } public void publicarTweets(Tweet tweets) { this.tweets.add(tweets); } public Tweet extraerTweet(){ return this.tweets.get(tweets.size()-1); } public void publicarReTweets(Tweet retweets) { this.retweets.add(retweets); } public void verTweets(){ for(Tweet t:tweets){ System.out.print(t.getTexto()); } } public void verReTweets(){ for(Tweet t:retweets){ System.out.print(t.getTexto()); } } public Usuario() { } public Usuario(String nombreUsuario, String password, String email, Date fecha_nacimiento, Date fechaIngreso, URL urlPhoto, String descripcion, boolean isVerificado) { this.nombreUsuario = nombreUsuario; this.password = password; this.email = email; this.fecha_nacimiento = fecha_nacimiento; this.fechaIngreso = fechaIngreso; this.urlPhoto = urlPhoto; this.descripcion = descripcion; this.isVerificado = isVerificado; } public String getNombreUsuario() { return this.nombreUsuario; } public void setNombreUsuario(String nombreUsuario) { this.nombreUsuario = nombreUsuario; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } public Date getFecha_nacimiento() { return this.fecha_nacimiento; } public void setFecha_nacimiento(Date fecha_nacimiento) { this.fecha_nacimiento = fecha_nacimiento; } public Date getFechaIngreso() { return this.fechaIngreso; } public void setFechaIngreso(Date fechaIngreso) { this.fechaIngreso = fechaIngreso; } public URL getUrlPhoto() { return this.urlPhoto; } public void setUrlPhoto(URL urlPhoto) { this.urlPhoto = urlPhoto; } public String getDescripcion() { return this.descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public boolean isIsVerificado() { return this.isVerificado; } public void setIsVerificado(boolean isVerificado) { this.isVerificado = isVerificado; } public ArrayList getseguidores() { return this.seguidores; } public void setSeguidores(Usuario a) { seguidores.add(a); } public ArrayList getsiguiendo() { return this.siguiendo; } public void setSiguiendo(Usuario a ) { siguiendo.add(a); } /*se pasa como parametro a quien seguir, si el usuario aun no sigue a nadie directamente seguimos al usuario pasado y incluimos en la lista de seguidos al nuevo usuario y en la lista de seguidores del usuario pasado le cargamos a nuestro usuario */ public void seguir(Usuario a){ if(siguiendo.size()==0){ this.setSiguiendo(a); a.setSeguidores(this); }else{ int x=0; for(Usuario b: siguiendo){ if(b.equals(a)){ x++; break; } } if(x==0){ this.setSiguiendo(a); a.setSeguidores(this); } } } public void eliminarSeguido(Usuario a){ this.siguiendo.remove(a); } public void eliminarSeguidor(Usuario a){ this.seguidores.remove(a); } /* verificamos que nuestro usuario siga al usuario que pasamos como parametro, si le sigue procedemos a eliminar de nuestra lista de seguidos al usuario pasado como parametro y nos eliminamos de su lista de seguidores, si no encuentra al usuario desplegamos un mensaje de que no seguimos a ese usuario */ public void dejarSeguir(Usuario a){ int x=0; for(Usuario b: this.siguiendo){ if(b.equals(a)){ x++; break; } } if(x==0){ this.eliminarSeguido(a); a.eliminarSeguidor(this); }else{ System.out.println("Usted no sigue al usuario "+a.nombreUsuario); } } /*el metodo de desbloquear deja de seguir al usuario y tambien elimina a nuestro usuario de su lista de seguidos */ public void bloquear(Usuario a){ this.eliminarSeguido(a); this.eliminarSeguidor(a); this.eliminarSeguido(this); this.eliminarSeguidor(this); } /*recorremos el array de nuestros seguidores y los mostramos en pantalla*/ public void verSeguidores(){ System.out.println("Seguidores:"); for(Usuario b: this.seguidores){ System.out.println(b.nombreUsuario); } } /*recorremos el array de nuestros seguidos y los mostramos en pantalla */ public void verSeguidos(){ System.out.println("Seguidos:"); for(Usuario b: this.siguiendo){ System.out.println(b.nombreUsuario); } } /*desplegamos en pantalla los tweets de nuestros seguidos recorriendo nuestro vector de seguidos y mostrando el ultimo twet de cada uno*/ public void verLosUltimosTweetsDeLosSeguidos(){ for(Usuario b: this.siguiendo){ System.out.println(b.nombreUsuario); System.out.println(b.tweets.get(tweets.size()-1).getTexto()); } } public int verLikes(){ int n=0; for(Tweet b: this.tweets){ n+=b.getNroLikes(); } return n; } }