Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
QuitoTactico authored Jun 1, 2022
1 parent 4ca467a commit 19fa4f2
Show file tree
Hide file tree
Showing 36 changed files with 1,513 additions and 0 deletions.
Binary file added Amistad.class
Binary file not shown.
13 changes: 13 additions & 0 deletions Amistad.ctxt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#BlueJ class context
comment0.target=Amistad
comment0.text=\r\n\ En\ esta\ clase\ se\ mantienen\ los\ usuarios\r\n\ y\ se\ crea\ la\ relaci\u00F3n\ entre\ estos.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 2\r\n
comment1.params=usuario1\ usuario2
comment1.target=Amistad(java.lang.String,\ java.lang.String)
comment1.text=\r\n\ Constructor\r\n\ Se\ crea\ una\ amistad\ con\ los\ usuarios\ ingresados.\r\n\ @param\ usuario1\ Usuario\ que\ tiene\ amistad\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ amigo\ del\ usuario1\r\n
comment2.params=
comment2.target=java.lang.String\ getUsuario1()
comment2.text=\r\n\ Se\ retorna\ el\ usuario\ que\ intent\u00F3\ crear\ la\ amistad\ inicialmente\r\n\ @return\ Uno\ de\ los\ usuarios\ de\ la\ amistad,\ quien\ envi\u00F3\ la\ solicitud\ hace\ tiempo\r\n
comment3.params=
comment3.target=java.lang.String\ getUsuario2()
comment3.text=\r\n\ Se\ retorna\ el\ usuario\ objetivo\ de\ la\ amistad\ de\ usuario1\r\n\ @return\ El\ otro\ usuario\ de\ la\ amistad,\ quien\ acept\u00F3\ la\ solicitud\r\n
numComments=4
42 changes: 42 additions & 0 deletions Amistad.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

/**
* En esta clase se mantienen los usuarios
* y se crea la relación entre estos.
*
* @author Esteban Vergara Giraldo
* @author John Alejandro Gonzales
* @author Andres Julian Gil Nagles
* @version 2
*/
public class Amistad
{
private String usuario1;
private String usuario2;

/**
* Constructor
* Se crea una amistad con los usuarios ingresados.
* @param usuario1 Usuario que tiene amistad con usuario2
* @param usuario2 El usuario amigo del usuario1
*/
public Amistad(String usuario1, String usuario2) {
this.usuario1 = usuario1;
this.usuario2 = usuario2;
}

/**
* Se retorna el usuario que intentó crear la amistad inicialmente
* @return Uno de los usuarios de la amistad, quien envió la solicitud hace tiempo
*/
public String getUsuario1() {
return usuario1;
}

/**
* Se retorna el usuario objetivo de la amistad de usuario1
* @return El otro usuario de la amistad, quien aceptó la solicitud
*/
public String getUsuario2() {
return usuario2;
}
}
Binary file added ColeccionAmistades.class
Binary file not shown.
19 changes: 19 additions & 0 deletions ColeccionAmistades.ctxt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#BlueJ class context
comment0.target=ColeccionAmistades
comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ todas\ las\ relaciones\ de\r\n\ amistad\ que\ hay\ entre\ los\ usuarios\ inscritos\ en\ la\ aplicaci\u00F3n.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\ \ \r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 7\r\n
comment1.params=
comment1.target=ColeccionAmistades()
comment1.text=\r\n\ Constructor,\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ las\ amistades\ antiguas.\r\n
comment2.params=amistad
comment2.target=boolean\ agregarAmistad(Amistad)
comment2.text=\r\n\ Se\ agrega\ una\ amistad.\ Se\ presume\ que\ ya\ se\ ha\ chequeado\ y\ no\ existe\r\n\ @param\ amistad\ Referencia\ a\ la\ nueva\ amistad\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ la\ amistad,\ false\ de\ lo\ contrario\r\n
comment3.params=usuario1\ usuario2
comment3.target=boolean\ buscarAmistad(java.lang.String,\ java.lang.String)
comment3.text=\r\n\ Se\ busca\ si\ la\ amistad\ ya\ existe\ en\ la\ colecci\u00F3n\ o\ no.\r\n\ @param\ usuario1\ Usuario\ que\ quiere\ ver\ si\ tiene\ amistad\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ objetivo\ del\ usuario1\r\n\ @return\ Si\ la\ amistad\ existe,\ se\ retorna\ true,\ de\ lo\ contrario\r\n\ se\ retorna\ false\r\n
comment4.params=usuario
comment4.target=java.util.ArrayList\ getAmistadesDeUnUsuario(java.lang.String)
comment4.text=\r\n\ Se\ buscan\ todas\ las\ amistades\ de\ un\ usuario\r\n\ @param\ usuario\ El\ usuario\ objetivo\r\n\ @return\ Un\ arraylist\ con\ los\ nombres\ de\ sus\ amigos\r\n
comment5.params=usuario
comment5.target=void\ imprimirAmistades(java.lang.String)
comment5.text=\r\n\ Para\ imprimir\ los\ usernames\ de\ los\ amigos\ de\ un\ usuario.\r\n\ @param\ usuario\ El\ usuario\ objetivo\r\n
numComments=6
120 changes: 120 additions & 0 deletions ColeccionAmistades.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import java.util.*;
import java.io.*;
/**
* En esta clase se maneja la colección de todas las relaciones de
* amistad que hay entre los usuarios inscritos en la aplicación.
*
* @author Esteban Vergara Giraldo
* @author John Alejandro Gonzales
* @author Andres Julian Gil Nagles
* @version 7
*/
public class ColeccionAmistades
{
/**
* ArrayList donde se almacenan las referencias a los
* pares de usuarios que se han hecho amigos
*/
protected ArrayList<Amistad> amistades;

/**
* Constructor,
* Se asigna memoria al nuevo ArrayList y se recuperan las amistades antiguas.
*/
public ColeccionAmistades() throws FileNotFoundException,IOException {
amistades = new ArrayList<>();
File amistadesFile = new File("amistadesFile.txt");
if(!amistadesFile.exists()){ amistadesFile.createNewFile();}
Scanner scan = new Scanner(amistadesFile);
while(scan.hasNextLine()) {
String linea = scan.nextLine();
Scanner scannerLinea = new Scanner(linea);
scannerLinea.useDelimiter(",");
String usuario1 = scannerLinea.next();
String usuario2 = scannerLinea.next();
Amistad a = new Amistad(usuario1, usuario2);
amistades.add(a);
scannerLinea.close();
}
scan.close();
}

/**
* Se agrega una amistad. Se presume que ya se ha chequeado y no existe
* @param amistad Referencia a la nueva amistad que se trata de agregar
* @return true si se pudo agregar la amistad, false de lo contrario
*/
public boolean agregarAmistad(Amistad amistad) throws FileNotFoundException,IOException{
File archivo = new File("amistadesFile.txt");
PrintWriter out = new PrintWriter(new FileWriter(archivo, true));
out.println(amistad.getUsuario1()+","+amistad.getUsuario2());
out.close();
return amistades.add(amistad);
}

/**
* Se busca si la amistad ya existe en la colección o no.
* @param usuario1 Usuario que quiere ver si tiene amistad con usuario2
* @param usuario2 El usuario objetivo del usuario1
* @return Si la amistad existe, se retorna true, de lo contrario
* se retorna false
*/
public boolean buscarAmistad(String usuario1, String usuario2) {
for(Amistad a: amistades) {
if(a.getUsuario1().equals(usuario1) && a.getUsuario2().equals(usuario2)) {
return true;
}
if(a.getUsuario1().equals(usuario2) && a.getUsuario2().equals(usuario1)) {
return true;
}
}
return false;
}

/**
* Se buscan todas las amistades de un usuario
* @param usuario El usuario objetivo
* @return Un arraylist con los nombres de sus amigos
*/
public ArrayList<String> getAmistadesDeUnUsuario(String usuario) {
ArrayList<String> seleccionadas = new ArrayList<>();
for(Amistad a: amistades) {
if(a.getUsuario1().equals(usuario)) {
seleccionadas.add(a.getUsuario2());
}
if(a.getUsuario2().equals(usuario)) {
seleccionadas.add(a.getUsuario1());
}
}
return seleccionadas;
}

/**
* Para imprimir los usernames de los amigos de un usuario.
* @param usuario El usuario objetivo
*/
public void imprimirAmistades(String usuario) {
ArrayList<String> seleccionadas = new ArrayList<>();
for(Amistad a: amistades) {
if(a.getUsuario1().equals(usuario)) {
seleccionadas.add(a.getUsuario2());
}
if(a.getUsuario2().equals(usuario)) {
seleccionadas.add(a.getUsuario1());
}
}
if(seleccionadas.size() == 0){
System.out.println("\n" + "Aún no tienes amigos :(" + "\n");
System.out.println("¡Facebook es más divertido con amigos!,");
System.out.println("envíale a alguien una SOLICITUD DE AMISTAD (función 2).");
}else{
String conjugacion = " amigos!:";
if(seleccionadas.size() == 1){conjugacion = " amigo!:";}
System.out.println();
System.out.println("¡Tienes " + seleccionadas.size() + conjugacion);
for(String a: seleccionadas) {
System.out.println("- " + a);
}
}
}
}
Binary file added ColeccionPublicaciones.class
Binary file not shown.
16 changes: 16 additions & 0 deletions ColeccionPublicaciones.ctxt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#BlueJ class context
comment0.target=ColeccionPublicaciones
comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ las\ publicaciones\r\n\ que\ han\ hecho\ todos\ los\ usuarios.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 7\r\n
comment1.params=
comment1.target=ColeccionPublicaciones()
comment1.text=\r\n\ Constructor,\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ las\ publicaciones\ antiguas.\r\n
comment2.params=p
comment2.target=boolean\ agregarPublicacion(Publicacion)
comment2.text=\r\n\ Se\ agrega\ una\ publicaci\u00F3n.\ Aunque\ sean\ una\ nueva\ publicaci\u00F3n,\ puede\ \r\n\ tener\ el\ mismo\ contenido\ que\ alguna\ anterior\r\n\ @param\ p\ Referencia\ a\ la\ nueva\ publicaci\u00F3n\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ la\ publicaci\u00F3n,\ false\ de\ lo\ contrario\r\n
comment3.params=usuario
comment3.target=java.util.ArrayList\ getPublicacionesDeUnUsuario(java.lang.String)
comment3.text=\r\n\ Se\ buscan\ las\ publicaciones\ del\ usuario\ ingresado\ (recientes\ primero)\r\n\ @param\ usuario\ Usuario\ al\ que\ se\ le\ buscan\ las\ publicaciones\r\n\ @return\ Retorna\ un\ ArrayList\ con\ todas\ las\ publicaciones\ que\ ha\ hecho\r\n\ comenzando\ con\ las\ recientes,\ puede\ estar\ vac\u00EDo\ si\ no\ ha\ hecho\ una\ a\u00FAn.\r\n
comment4.params=usuario
comment4.target=void\ imprimirPublicaciones(java.lang.String)
comment4.text=\r\n\ Imprime\ las\ publicaciones\ del\ usuario\ ingresado\ (recientes\ primero).\r\n\ Imprime\ el\ ArrayList\ de\ todas\ las\ publicaciones\ que\ ha\ hecho\ comenzando\r\n\ con\ las\ recientes,\ es\ capaz\ de\ informar\ si\ no\ ha\ publicado\ nada\ a\u00FAn.\r\n\ @param\ usuario\ Usuario\ al\ que\ se\ le\ imprimir\u00E1n\ las\ publicaciones\r\n
numComments=5
97 changes: 97 additions & 0 deletions ColeccionPublicaciones.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import java.util.*;
import java.io.*;
/**
* En esta clase se maneja la colección de las publicaciones
* que han hecho todos los usuarios.
*
* @author Esteban Vergara Giraldo
* @author John Alejandro Gonzales
* @author Andres Julian Gil Nagles
* @version 7
*/
public class ColeccionPublicaciones
{
/**
* ArrayList donde se almacenan las publicaciones hechas por todos los usuarios
*/
protected ArrayList<Publicacion> publicaciones;

/**
* Constructor,
* Se asigna memoria al nuevo ArrayList y se recuperan las publicaciones antiguas.
*/
public ColeccionPublicaciones() throws FileNotFoundException,IOException{
publicaciones = new ArrayList<>();
File publicacionesFile = new File("publicacionesFile.txt");
if(!publicacionesFile.exists()){ publicacionesFile.createNewFile();}
Scanner scan = new Scanner(publicacionesFile);
while(scan.hasNextLine()) {
String linea = scan.nextLine();
Scanner scannerLinea = new Scanner(linea);
scannerLinea.useDelimiter("/");
String usuario = scannerLinea.next();
String texto = scannerLinea.next();
String fechaHora = scannerLinea.next();
Publicacion p = new Publicacion(usuario, texto, fechaHora);
publicaciones.add(p);
scannerLinea.close();
}
scan.close();
}

/**
* Se agrega una publicación. Aunque sean una nueva publicación, puede
* tener el mismo contenido que alguna anterior
* @param p Referencia a la nueva publicación que se trata de agregar
* @return true si se pudo agregar la publicación, false de lo contrario
*/
public boolean agregarPublicacion(Publicacion p) throws IOException{
File archivo = new File("publicacionesFile.txt");
PrintWriter out = new PrintWriter(new FileWriter(archivo, true));
out.println(p.getUsuario()+"/"+p.getTexto()+"/"+p.getFechaHora());
out.close();
return publicaciones.add(p);
}

/**
* Se buscan las publicaciones del usuario ingresado (recientes primero)
* @param usuario Usuario al que se le buscan las publicaciones
* @return Retorna un ArrayList con todas las publicaciones que ha hecho
* comenzando con las recientes, puede estar vacío si no ha hecho una aún.
*/
public ArrayList<Publicacion> getPublicacionesDeUnUsuario(String usuario) {
ArrayList<Publicacion> seleccionadas = new ArrayList<>();
for(Publicacion p: publicaciones) {
if(p.getUsuario().equals(usuario)) {
seleccionadas.add(p);
}
}
ArrayList<Publicacion> seleccionadasRecientes = new ArrayList<>(seleccionadas.size());
for(int i = seleccionadas.size(); i > 0 ; i-- ){
seleccionadasRecientes.add(seleccionadas.get(i-1));
}
return seleccionadasRecientes;
}

/**
* Imprime las publicaciones del usuario ingresado (recientes primero).
* Imprime el ArrayList de todas las publicaciones que ha hecho comenzando
* con las recientes, es capaz de informar si no ha publicado nada aún.
* @param usuario Usuario al que se le imprimirán las publicaciones
*/
public void imprimirPublicaciones(String usuario) {
ArrayList<Publicacion> seleccionadas = getPublicacionesDeUnUsuario(usuario);
if(seleccionadas.size() == 0){
System.out.println(usuario + " no ha publicado nada aún.");
}else{
int i = 1;
System.out.println("Las publicaciones de " + usuario + "(recientes primero): ");
for(Publicacion p: seleccionadas) {
System.out.println();
System.out.println(i + ". " + p.getFechaHora());
System.out.println(" - " + p.getTexto());
i++;
}
}
}
}
Binary file added ColeccionSolicitudes.class
Binary file not shown.
16 changes: 16 additions & 0 deletions ColeccionSolicitudes.ctxt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#BlueJ class context
comment0.target=ColeccionSolicitudes
comment0.text=\r\n\ En\ esta\ clase\ se\ maneja\ la\ colecci\u00F3n\ de\ todas\ las\ solicitudes\ de\r\n\ amistad\ que\ hay\ entre\ los\ usuarios\ inscritos\ en\ la\ aplicaci\u00F3n.\r\n\ \r\n\ @author\ Esteban\ Vergara\ Giraldo\ \ \r\n\ @author\ John\ Alejandro\ Gonzales\r\n\ @author\ Andres\ Julian\ Gil\ Nagles\r\n\ @version\ 4\r\n
comment1.params=
comment1.target=ColeccionSolicitudes()
comment1.text=\r\n\ Constructor,\r\n\ Se\ asigna\ memoria\ al\ nuevo\ ArrayList\ y\ se\ recuperan\ las\ solicitudes\ antiguas.\r\n
comment2.params=solicitud
comment2.target=boolean\ agregarSolicitud(Solicitud)
comment2.text=\r\n\ Se\ agrega\ una\ solicitud.\ Se\ presume\ que\ ya\ se\ ha\ chequeado\ y\ no\ existe\r\n\ @param\ solicitud\ Referencia\ a\ la\ nueva\ solicitud\ que\ se\ trata\ de\ agregar\r\n\ @return\ true\ si\ se\ pudo\ agregar\ la\ solicitud,\ false\ de\ lo\ contrario\r\n
comment3.params=usuario1\ usuario2
comment3.target=boolean\ buscarSolicitud(java.lang.String,\ java.lang.String)
comment3.text=\r\n\ Se\ busca\ si\ la\ solicitud\ ya\ existe\ en\ la\ colecci\u00F3n\ o\ no.\r\n\ @param\ usuario1\ Usuario\ que\ quiere\ ver\ si\ tiene\ solicitud\ con\ usuario2\r\n\ @param\ usuario2\ El\ usuario\ objetivo\ del\ usuario1\r\n\ @return\ Si\ la\ solicitud\ existe,\ se\ retorna\ true,\ de\ lo\ contrario\r\n\ se\ retorna\ false\r\n
comment4.params=usuario\ amistades
comment4.target=void\ imprimirSolicitudes(java.lang.String,\ java.util.ArrayList)
comment4.text=\r\n\ Para\ imprimir\ los\ usernames\ de\ los\ que\ le\ han\ enviado\ una\ solicitud\r\n\ de\ amistad\ a\ un\ usuario\ en\ espec\u00EDfico.\r\n\ @param\ usuario\ El\ usuario\ objetivo\ a\ quien\ le\ han\ mandado\ las\ solicitudes\r\n\ @param\ amistades\ Un\ Arraylist\ con\ los\ usernames\ de\ los\ que\ ya\ son\ sus\ amigos\r\n
numComments=5
Loading

0 comments on commit 19fa4f2

Please sign in to comment.