Usuario.java 6.09 KB
Newer Older
willgonzz committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221


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<Usuario> seguidores;
    private ArrayList<Usuario> siguiendo;
    private ArrayList<Tweet> tweets;
    private ArrayList<Tweet> retweets;

    public ArrayList<Tweet> 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<Usuario> getseguidores() {
		return this.seguidores;
	}

	public void setSeguidores(Usuario a) {
		seguidores.add(a);
	}

	public ArrayList<Usuario> 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;
    }
}