uniandes.cupi2.messengerAmigos.servidor
Interface IAdministradorAmigos

All Known Implementing Classes:
AdministradorAmigos

public interface IAdministradorAmigos

Esta interfaz define los métodos que debe ofrecer el administrador de amigos


Method Summary
 void agregarAmigo(java.lang.String usuario, java.lang.String amigo)
          Agrega un amigo a un usuario
pre: El amigo indicado no hace parte todavía de los amigos del usuario
 void cambiarEstadoUsuario(java.lang.String usuario, java.lang.String estado, java.lang.String ip, int puerto)
          Este método cambia el estado de un usuario en la base de datos
pre: El usuario existe en la base de datos
 void conectarABD()
          Conecta el administrador a la base de datos
 void crearUsuario(java.lang.String usuario)
          Este método crea un nuevo usuario en la base de datos
pre: No hay ya un usuario con el mismo nombre en la base de datos
 java.util.Collection darAmigos(java.lang.String usuario)
          Consulta en la base de datos cuales son los amigos de un usuario y los retorna ordenados por nombre
 Usuario darEstadoUsuario(java.lang.String nombre)
          Este método consulta el estado actual de un usuario
 java.util.Collection darPersonasConocen(java.lang.String nombreUsuario)
          Consulta en la base de datos el estado de las personas que conocen a un usuario (el usuario es su amigo aunque ellos no necesariamente no son sus amigos) y los retorna ordenados por nombre.
 void desconectarBD()
          Desconecta el administrador de la base de datos y la detiene
 boolean existeAmigo(java.lang.String usuario, java.lang.String amigo)
          Este método sirve para saber si un usuario ya es amigo de otro
 boolean existeUsuario(java.lang.String usuario)
          Este método sirve para saber si un usuario existe ya en la base de datos
 void inicializarTablas()
          Crea las tablas necesarias para guardar la información de los usuarios y sus amigos.
 

Method Detail

conectarABD

void conectarABD()
                 throws java.sql.SQLException,
                        java.lang.Exception
Conecta el administrador a la base de datos

Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas realizando la operación
java.lang.Exception - Se lanza esta excepción si hay problemas con los drivers

desconectarBD

void desconectarBD()
                   throws java.sql.SQLException
Desconecta el administrador de la base de datos y la detiene

Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas realizando la operación

inicializarTablas

void inicializarTablas()
                       throws java.sql.SQLException
Crea las tablas necesarias para guardar la información de los usuarios y sus amigos. Si las tablas ya estaban creadas entonces no hace nada.

Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas creando las tablas

crearUsuario

void crearUsuario(java.lang.String usuario)
                  throws java.sql.SQLException
Este método crea un nuevo usuario en la base de datos
pre: No hay ya un usuario con el mismo nombre en la base de datos

Parameters:
usuario - El nombre del usuario - usuario != null && usuario != ""
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

agregarAmigo

void agregarAmigo(java.lang.String usuario,
                  java.lang.String amigo)
                  throws java.sql.SQLException
Agrega un amigo a un usuario
pre: El amigo indicado no hace parte todavía de los amigos del usuario

Parameters:
usuario - El nombre del usuario al que se le va a agregar un amigo - usuario != null && usuario != ""
amigo - El nombre del usuario que desde ahora va a ser amigo del usuario - amigo != null && amigo != ""
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

cambiarEstadoUsuario

void cambiarEstadoUsuario(java.lang.String usuario,
                          java.lang.String estado,
                          java.lang.String ip,
                          int puerto)
                          throws java.sql.SQLException
Este método cambia el estado de un usuario en la base de datos
pre: El usuario existe en la base de datos

Parameters:
usuario - El nombre del usuario al que se va a cambiar el estado - usuario != null && usuario != ""
estado - El nuevo estado del usuario - estado != null && estado != ""
ip - La dirección ip del usuario - ip != null
puerto - El puerto usado para las conexiones con el usuario
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

darAmigos

java.util.Collection darAmigos(java.lang.String usuario)
                               throws java.sql.SQLException
Consulta en la base de datos cuales son los amigos de un usuario y los retorna ordenados por nombre

Parameters:
usuario - El nombre del usuario del que se quieren los amigos - usuario != null && usuario != ""
Returns:
Retorna una colección de objetos de tipo Usuario
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

darPersonasConocen

java.util.Collection darPersonasConocen(java.lang.String nombreUsuario)
                                        throws java.sql.SQLException
Consulta en la base de datos el estado de las personas que conocen a un usuario (el usuario es su amigo aunque ellos no necesariamente no son sus amigos) y los retorna ordenados por nombre.

Parameters:
nombreUsuario - El nombre del usuario que las personas deben conocer - nombreUsuario != null && nombreUsuario != ""
Returns:
Retorna una colección de objetos de tipo Usuario
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

darEstadoUsuario

Usuario darEstadoUsuario(java.lang.String nombre)
                         throws java.sql.SQLException
Este método consulta el estado actual de un usuario

Parameters:
nombre - El nombre del usuario que se está consultando - nombre != null
Returns:
Retorna un objeto con la información del estado del usuario. Si el usuario no existe, retorna null.
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

existeUsuario

boolean existeUsuario(java.lang.String usuario)
                      throws java.sql.SQLException
Este método sirve para saber si un usuario existe ya en la base de datos

Parameters:
usuario - El nombre del usuario buscado - usario != null
Returns:
Retorna true si el usuario aparece en la base de datos; retorna false en caso contrario
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos

existeAmigo

boolean existeAmigo(java.lang.String usuario,
                    java.lang.String amigo)
                    throws java.sql.SQLException
Este método sirve para saber si un usuario ya es amigo de otro

Parameters:
usuario - El nombre del usuario para el que se van a revisar los amigos- usario != null
amigo - El nombre del amigo que se va a buscar dentro de los contactos de usuario - amigo != null
Returns:
Retorna true si los usuarios dados ya son amigos
Throws:
java.sql.SQLException - Se lanza esta excepción si hay problemas en la comunicación con la base de datos