/**
* @file Controlador.java
* Clase controlador principal de la aplicación
*
* La clase interconecta la clase ConexionBD con las clases Controlador
* Se implementa siguiendo el patrón de Diseño "Singleton"
*
* @author Carlos Rabelo
* @version 2.2
* @created 27-mar-2013 23:22:04
*/
package Controlador;
import GestorEquipos.Categoria;
import Controladores.ControladorEquipo;
import GestorEquipos.Equipo;
import ConexionBD.ConexionBD;
import GestorJugadores.*;
import GestorUsuarios.*;
import java.sql.SQLException;
import java.util.Date;
public class Controlador {
private static Controlador Instancia = null;
private static Usuario [] usuarioActivo;
/**
* Constructor por defecto. Al ser un singleton el contructor es privado
* @param void
* @return void
* @author Carlos Rabelo
*/
private Controlador(){}
/**
* Método que devuelve la única instancia de la clase
* @param void
* @return Instancia
* @author Carlos Rabelo
*/
public static Controlador getInstancia() {
if (Instancia==null){
Instancia = new Controlador();
}
return Instancia;
}
@Override
/**
* Sobrecarga del método clone para impedir que se duplique la instancia
* (Exigencias del patrón Singleton)
* @param void
* @return Object
* @author Carlos Rabelo
*/
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
/**
*
* @param equipo
*/
/*
public Equipo aniadirEquipo(String[] s){
String nombre_equipo = s[0]; // Obtenemos el nombre del equipo
String cat = s[1]; // Obtenemos la categoria del equipo
/*if (s[1].equals("Benjamin")){
cat = Categoria.Benjamin;
} else if(s[1].equals("Alevin")){
cat = Categoria.Alevin;
} else if(s[1].equals("Infantil")){
cat = Categoria.Infantil;
} else if(s[1].equals("Cadete")){
cat = Categoria.Cadete;
} else if(s[1].equals("Junior")){
cat = Categoria.Junior;
}*/
/*
Character gen; // Obtenemos el genero del Equipo
if (s[2].equals("M")){
gen = 'M';
} else {
gen = 'F';
}
return (ControladorEquipo.getInstanciaControladorEquipo().addEquipo(nombre_equipo, cat, gen));
}
/**
* Método que crea un objeto Jugador y lo añade a la Base de Datos
* El objeto Jugador es añadido, y se le asigna un idJugador disponible
* Si se pretende modificar un Jugador existente en la Base de Datos
* utilizar el método modificarJugador
* @param jugador Vector de String con los datos del jugador
* @return Un objeto jugador con los valores indicados en el parámetro
* @author Carlos Rabelo
*/
public Jugador aniadirJugador(String[] jugador){
Boolean estado=true;
if (jugador.length==11){
if (jugador[10].equals("false")){
estado=false;
}
// return ControladorJugador.getInstancia().addJugador(jugador[0],
// jugador[1], jugador[2].charAt(0), new Date(jugador[3]),
//jugador[4], jugador[5], jugador[6], jugador[7],
//Integer.parseInt(jugador[8]), estado);
return null;
} else
{
return null;
}
}
/**
*
* @param usuario
*/
public Usuario aniadirUsuario(String nomUsuario, String apellidosUsuario, String dniUsuario, String correoUsuario, Boolean gestor, String login, String contrasena){
return null;
}
/**
*
* @param idEquipo
*/
//public Boolean borrarEquipo(Integer idEquipo){
// return ControladorEquipo.getInstanciaControladorEquipo().deleteEquipo(idEquipo);
// }
/**
* Método que elimina un objeto Jugador de la Base de Datos
* El Jugador en realidad no es eliminado sino que se le cambia
* el atributo estado a 'baja' pero se mantiene en la Base de Datos
* @param idJugador el identificador único del Jugador en la BD
* @return true si se modificó con éxito false si no
* @author Carlos Rabelo
*/
public Boolean borrarJugador(Integer idJugador){
// return ControladorJugador.getInstancia().deleteJugador(idJugador);
return null;
}
/**
*
* @param idUsuario
*/
// public Boolean borrarUsuario(Integer idUsuario){
// return ControladorUsuario.getInstancia().deleteUsuario(idUsuario);
// }
/**
* No esta terminado
* @param equipo
*/
public Equipo consultarEquipo(String[] s){
String nombre = s[0];
String cat = s[1];
Equipo eq = null;
/*if (s[1].equals("Benjamin")){
cat = Categoria.Benjamin;
} else if(s[1].equals("Alevin")){
cat = Categoria.Alevin;
} else if(s[1].equals("Infantil")){
cat = Categoria.Infantil;
} else if(s[1].equals("Cadete")){
cat = Categoria.Cadete;
} else if(s[1].equals("Junior")){
cat = Categoria.Junior;
}*/
// eq = ControladorEquipo.getInstanciaControladorEquipo().getEquipo(nombre, cat);
return eq;
}
/**
* Método que hace una consulta en la Base de Datos buscando un listado
* de Jugadores, devuelve un vector de Jugadores con todos los
* Jugadores devueltos por la consulta.
* @param jugador Vector de String con los datos del jugador
* @return El primer objeto jugador devuelto por la consulta
* @author Carlos Rabelo
*/
public Jugador consultarJugador(String[] jugador) throws SQLException {
Jugador[] jugadores;
Boolean estado=true;
if (jugador.length==11){
if (jugador[10].equals("false")){
estado=false;
}
// jugadores=ControladorJugador.getInstancia().getJugador(jugador[0],
// jugador[1], jugador[2].charAt(0),new Date(jugador[3]),
// jugador[4], jugador[5], jugador[6], jugador[7],
// Integer.parseInt(jugador[8]), estado);
// return jugadores[0]; //Se tiene una lista de jugadores y el método solo puede devolver uno, se envía el primero
return null;
} else
{
return null;
}
}
public Usuario consultarUsuario(String nomUsuario, String apellidosUsuario, String dniUsuario, String correoUsuario, Boolean es_gestor, String login, String contrasena) throws SQLException {
// Usuario[] user = ControladorUsuario.getInstancia().getUsuario(nomUsuario, apellidosUsuario, dniUsuario, correoUsuario, es_gestor, login, contrasena);
// return user[0];
return null;
}
public static Usuario getUsuarioActivo(){
return usuarioActivo[0];
}
/**
* No esta terminado
* @param equipo
*/
public Boolean modificarEquipo(Equipo eq, String[] s){
String nombre_equipo = null;
if (s[0] != null)
nombre_equipo = s[0]; // Obtenemos el nombre del equipo
Categoria cat = null; // Obtenemos la categoria del equipo
if (s[1] != null) {
if (s[1].equals("Benjamin")){
cat = Categoria.Benjamin;
} else if(s[1].equals("Alevin")){
cat = Categoria.Alevin;
} else if(s[1].equals("Infantil")){
cat = Categoria.Infantil;
} else if(s[1].equals("Cadete")){
cat = Categoria.Cadete;
} else if(s[1].equals("Junior")){
cat = Categoria.Junior;
}
}
Character gen = null; // Obtenemos el genero del Equipo
if (s[2] != null) {
if (s[2].equals("M")){
gen = 'M';
} else {
gen = 'F';
}
}
//return ControladorEquipo.getInstanciaControladorEquipo().updateEquipo(eq,nombre_equipo, cat, gen, null);
return null;
}
/**
* Método que modifica un objeto Jugador existente en la Base de Datos y
* que es identificado por el parámetro id_jug.
* El Jugador es actualizado con los valores del resto de parámetros
* @param jugador Vector de String con los datos del jugador
* @return true si se modificó con éxito false si no
* @author Carlos Rabelo
*/
public Boolean modificarJugador(String[] jugador) {
Boolean estado=true;
if (jugador.length==11){
Jugador jug=new Jugador();
jug.setIdJugador(Integer.parseInt(jugador[0]));
if (jugador[10].equals("false")){
estado=false;
}
// return ControladorJugador.getInstancia().setJugador(jug, jugador[1],
// jugador[2], jugador[3].charAt(0), new Date(jugador[4]),
// jugador[5], jugador[6], jugador[7], jugador[8],
// Integer.parseInt(jugador[9]), estado);
return null;
} else
{
return null;
}
}
/**
*
* @param usuario
*/
public Boolean modificarUsuario( Usuario user){
Boolean salida = true;
String consulta = "UPDATE Usuario SET Nombre='" + user.getNombre() +
"', Apellidos='" + user.getApellidos() +
"', DNI='" + user.getDNI() +
", Login='" + user.getLogin() +
", Contraseña='" + user.getContrasena() +
", Correo='" + user.getCorreo() +
", tipoUsuario='";
if(user.getEsGestor()){
consulta+= "G";
}
else {
consulta+= "E";
}
consulta += "'WHERE IdUsuario=" + user.getIdUsuario().toString() + ";";
try {
ConexionBD.getInstancia().conectar();
ConexionBD.getInstancia().actualizar(consulta);
ConexionBD.getInstancia().desconectar();
} catch (SQLException ex) {
System.out.println(ex);
salida=false;
}
return salida;
}
}