package com.rzg.zombieland.cliente.comunicacion.controlador;
import com.rzg.zombieland.comunes.comunicacion.Enviable;
import com.rzg.zombieland.comunes.controlador.Controlador;
import com.rzg.zombieland.comunes.controlador.Controlador.ComandoDesconocidoException;
import com.rzg.zombieland.comunes.controlador.ControladorFactory;
/**
* F�brica de controladores para el cliente.
* @author nicolas
*
*/
public class ControladorClienteFactory implements ControladorFactory {
@Override
public Controlador crear(int codigo) throws ComandoDesconocidoException {
switch (codigo) {
case Enviable.LISTADO_PARTIDAS:
return new ControladorListadoPartidas();
case Enviable.ACTUALIZACION_LOBBY:
return new ControladorActualizacionLobby();
case Enviable.ACTUALIZACION_PROYECCION:
return new ControladorActualizacionProyeccion();
case Enviable.RECIBIR_MENSAJE_CHAT:
return new ControladorRecibirMensaje();
case Enviable.RECIBIR_PUNTAJE_PARTIDA:
return new ControladorRecibirPuntaje();
default:
throw new ComandoDesconocidoException(
"El comando " + codigo + " no es conocido por el cliente");
}
}
}