Commit 6ae65ded by Javier Ferreira

Initial commit

parent 22b36884
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package twitter;
import java.util.ArrayList;
import java.util.Date;
import java.util.Objects;
import java.util.Scanner;
/**
*
* @author user
*/
class Tweet{
private Usuario usuario;
private String text;
private int numeroRt;
private int numeroFav;
private String imageUrl;
private String linkUrl;
private ArrayList<Reaccion> reacciones;
private ArrayList<Respuesta> respuestas;
public Tweet(Usuario usuario, String text, String imageUrl, String linkUrl) {
this.usuario = usuario;
this.text = text;
this.imageUrl = imageUrl;
this.linkUrl = linkUrl;
this.numeroFav = 0;
this.numeroRt = 0;
this.respuestas = new ArrayList<Respuesta>();
this.reacciones = new ArrayList<Reaccion>();
}
public static void likear(Usuario usuario, int tweetId){
BaseDeDatos.getTweetById(tweetId).addLike(usuario);
}
public void addLike(Usuario usuario){
for(Reaccion reaccion: reacciones){
if(reaccion.getUsuario()==usuario){
System.out.println("Ya diste like a esta publicacion");
return;
}
}
this.reacciones.add(new Reaccion(usuario, this, "LIKE"));
this.numeroFav++;
}
public static void retweetear(Usuario usuario, int tweetId){
BaseDeDatos.getTweetById(tweetId).addRt(usuario);
}
public void addRt(Usuario usuario){
for(Reaccion reaccion: reacciones){
if(reaccion.getUsuario()==usuario){
System.out.println("Ya diste rt a esta publicacion");
return;
}
}
this.reacciones.add(new Reaccion(usuario, this, "RT"));
this.numeroRt++;
}
public static void responder(Usuario usuario, int tweetId){
BaseDeDatos.getTweetById(tweetId).addRespuesta(usuario);
}
public void addRespuesta(Usuario usuario){
respuestas.add(Respuesta.tweetear(usuario, this));
}
public static void tweetear(Usuario user){
Scanner in = new Scanner(System.in);
String text;
String imageUrl=null;
String linkUrl=null;
String choice;
try{
System.out.println("Texto");
System.out.print("-----> ");
text = in.nextLine();
System.out.print("\nDesea agregar una imagen al tweet?(Y/N): ");
choice = (in.nextLine()).toLowerCase();
if(choice.equals("y")){
System.out.print("\nURL De la Imagen: ");
imageUrl = in.nextLine();
}
System.out.print("\nDesea agregar un link al tweet?(Y/N): ");
choice = (in.nextLine()).toLowerCase();
if(choice.equals("y")){
System.out.print("\nURL: ");
linkUrl = in.nextLine();
}
BaseDeDatos.addTweet(new Tweet(user, text, imageUrl, linkUrl));
}catch (Exception e){
System.out.println("Error");
}
}
public Usuario getUsuario() {
return usuario;
}
public String getText() {
return text;
}
public int getNumeroRt() {
return numeroRt;
}
public int getNumeroFav() {
return numeroFav;
}
public String getImageUrl() {
return imageUrl;
}
public String getLinkUrl() {
return linkUrl;
}
public ArrayList<Respuesta> getRespuestas() {
return respuestas;
}
}
//}
public class Dashboard {
private Usuario usuario;
public Dashboard(Usuario usuario) {
this.usuario = usuario;
}
public void verUltimosTweets(int limit){
ArrayList<Tweet> tweets = BaseDeDatos.getTweets();
ArrayList<Usuario> usuarios = this.usuario.seguimiento.getSeguidos();
int count = 0;
int index=0;
for(Tweet tweet: tweets){
if(usuarios.contains(tweet.getUsuario()) || tweet.getUsuario()==this.usuario){
System.out.print("\n---------------------");
System.out.print("\n\t*id: "+index+"\n\tAutor: "+tweet.getUsuario().getNombreUsuario()+
"\n\tTexto: "+tweet.getText());
System.out.print("\n\tLikes: "+tweet.getNumeroFav()+"\tRts: "+tweet.getNumeroRt());
if(tweet.getImageUrl()!=null){
System.out.print("\n\tImage: "+tweet.getImageUrl());
}
if(tweet.getLinkUrl()!=null){
System.out.print("\n\tLink: "+tweet.getLinkUrl());
}
if(!tweet.getRespuestas().isEmpty()){
System.out.print("\n\tRespuestas: ");
for(Respuesta respuesta: tweet.getRespuestas()){
System.out.print("\n\t\t\t*Usuario: "+respuesta.getUsuario().getNombreUsuario());
System.out.print("\n\t\t\tText: "+respuesta.getText());
if(respuesta.getImageUrl()!=null){
System.out.print("\n\t\t\tImage: "+respuesta.getImageUrl());
}
if(respuesta.getLinkUrl()!=null){
System.out.print("\n\t\t\tLink: "+respuesta.getLinkUrl());
}
}
}
count++;
if(count>limit){
return;
}
}
System.out.println("\n\n");
index++;
}
}
}
public class Reaccion {
private Usuario usuario;
private Tweet tweet;
private String tipoDeReaccion;
public Reaccion(Usuario usuario, Tweet tweet, String tipoDeReaccion) {
this.usuario = usuario;
this.tweet = tweet;
this.tipoDeReaccion = tipoDeReaccion;
}
public Usuario getUsuario() {
return usuario;
}
public Tweet getTweet() {
return tweet;
}
public String getTipoDeReaccion() {
return tipoDeReaccion;
}
}
class ComentarioUrl extends Tweet{
//Propiedades:
//linkUrl
}
class reacciones{
//Propiedades:
//Usuario
//Tweet
//tipoDeReaccion
}
public class BaseDeDatos {
private static final ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
private static final ArrayList<Tweet> tweets = new ArrayList<Tweet>();
public static void addUsuario(Usuario usuario){
/*
* Agrega un usuario si este no existe.
* */
for(Usuario user: usuarios){
if(user.getNombreUsuario().equals(usuario.getNombreUsuario())){
System.out.println("ESTE NOMBRE DE USUARIO YA ESTA REGISTRADO");
return;
}
}
usuarios.add(usuario);
}
public static ArrayList<Usuario> getUsuarios(){
/*
* Obtiene todos los usuarios
*/
return usuarios;
}
public static Usuario getUsuarioByUsername(String username){
/*
Obtiene un usuario por su username, si no existe retorna null
*/
for(Usuario user: usuarios){
if(user.getNombreUsuario().equals(username)) return user;
}
return null;
}
public static void addTweet(Tweet tweet){
tweets.add(tweet);
}
public static ArrayList<Tweet> getTweets(){
return tweets;
}
public static Tweet getTweetById(int id){
return tweets.get(id);
}
}
class Usuario{
private String nombreUsuario;
private String contrasenha;
private String correo;
private Date fechaNacimiento;
private Date fechaRegistro;
private String fotoUrl;
private String descripcion;
public Seguimiento seguimiento;
public Dashboard dashboard;
public Usuario(String nombreUsuario, String contrasenha, String correo,
Date fechaNacimiento, Date fechaRegistro, String fotoUrl,
String descripcion, boolean esVerficado) {
this.nombreUsuario = nombreUsuario;
this.contrasenha = contrasenha;
this.correo = correo;
this.fechaNacimiento = fechaNacimiento;
this.fechaRegistro = fechaRegistro;
this.fotoUrl = fotoUrl;
this.descripcion = descripcion;
this.esVerficado = esVerficado;
this.seguimiento = new Seguimiento(this);
this.dashboard = new Dashboard(this);
}
private boolean esVerficado;
public Usuario(String nombreUsuario, String contrasenha, String correo,
String descripcion) {
this.nombreUsuario = nombreUsuario;
this.contrasenha = contrasenha;
this.correo = correo;
this.descripcion = descripcion;
this.seguimiento = new Seguimiento(this);
this.dashboard = new Dashboard(this);
}
public static Usuario registarUsuario(){
/*
* Funcion que crea un usuario y lo retorna para ser guardado.
* */
Scanner in = new Scanner(System.in);
String username;
String password;
String mail;
String fotoUrl;
String descripcion;
try{
System.out.print("\nIngrese nombre de usuario: ");
username = in.nextLine();
System.out.print("\nIngrese contrasenha: ");
password = in.nextLine();
System.out.print("\nIngrese mail: ");
mail = in.nextLine();
System.out.print("\nIngrese una descripcion: ");
descripcion = in.nextLine();
return new Usuario(username, password, mail, descripcion);
}catch (Exception e){
System.out.println("Un error");
}
return null;
}
public static Usuario iniciarSesion(){
/*
Retorna usuario si las credenciales son correctas, null en caso contrario
*/
Scanner in = new Scanner(System.in);
String username;
String password;
try{
System.out.print("\nIngrese su Nombre de Usuario: ");
username = in.nextLine();
System.out.print("\nIngrese su Contrasenha: ");
password = in.nextLine();
Usuario u = Objects.requireNonNull(BaseDeDatos.getUsuarioByUsername(username));
if(u.getContrasenha().equals(password)){
return u;
}else{
System.out.println("Credenciales Incorrectas!");
return null;
}
}catch (Exception e){
System.out.println("Credenciales Incorrectas!");
}
return null;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public String getContrasenha() {
return contrasenha;
}
public String getCorreo() {
return correo;
}
public Date getFechaNacimiento() {
return fechaNacimiento;
}
public Date getFechaRegistro() {
return fechaRegistro;
}
public String getFotoUrl() {
return fotoUrl;
}
public String getDescripcion() {
return descripcion;
}
public boolean isEsVerficado() {
return esVerficado;
}
}
//nombreUsuario
//Contrasena
//Correo
//fechaNacimiento
//fechaIngreso
//urlPhoto
//Descripcion
//isVerificado
//Métodos:
//Getter
//Setter
//}
class Reacciones{
Usuario u;
Tweet t;
public void Reacciones (Usuario u, Tweet t){
this.u=u;
this.t= t;
}
}
// propiedades,tweet id, tweetId, tweettexto
//tweetTexto
//nroLikes
//Usuario u//Métodos:
//Getter
//Setter
//verComentario
//Class ComentarioImage extends Tweet{}
//Class Usuario{
public class Twitter {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}
TalentoHumano @ 1fba0a8c
Subproject commit 1fba0a8c1071cb56ce3dbe926680d2b70beaa9cb
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment