package com.escuelademanejo.negocio;
import java.util.*;
import java.text.*;
import com.escuelademanejo.persistencia.FactoryPersistencia;
import com.escuelademanejo.persistencia.IPersistenciaController;
public class CatalogoTurnos {
/**
* Clase que maneja el catalogo de Turnos Implementa el patron Singleton
*/
private static CatalogoTurnos INSTANCE = null;
private TreeMap<Integer, Turno> turnos = null;
private CatalogoTurnos() throws Exception {
IPersistenciaController iPersistController = FactoryPersistencia.getInstance().getIPersistenciaController();
if (turnos == null){
turnos = new TreeMap<Integer, Turno>();
TreeMap<Integer, ArrayList<String>> rows_turnos = iPersistController.selectAllTurnos();
Collection<ArrayList<String>> rows_turno = rows_turnos.values();
for (ArrayList<String> datos_turno : rows_turno) {
int id_turno = Integer.valueOf(datos_turno.get(0));
int id_cliente = Integer.valueOf(datos_turno.get(1));
int id_hi = Integer.valueOf(datos_turno.get(2));
String fecha_str = datos_turno.get(3);
String observacion = datos_turno.get(4);
SimpleDateFormat formatoDeFecha = new SimpleDateFormat("dd-MM-yyyy");
Date fecha = null;
fecha = formatoDeFecha.parse(fecha_str);
Turno turno= new Turno(id_cliente, id_hi, fecha, observacion);
turno.setId_turno(id_turno);
turnos.put(id_turno, turno);
}
}
}
/**
*
* @return Devuelve la unica instancia al CatalogoTurnos. Si no existe
* crea uno.
* @throws Exception
*/
public static CatalogoTurnos getInstance() throws Exception {
if (INSTANCE == null)
createInstance();
return INSTANCE;
}
private synchronized static void createInstance() throws Exception {
if (INSTANCE == null) {
INSTANCE = new CatalogoTurnos();
}
}
/**
* @since El metodo "clone" es sobreescrito por el siguiente que arroja una
* excepci�n:
*/
@Override
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
public int addTurno(int id_Cliente, Date fecha, int id_hora_inst,
String observacion) throws Exception {
// TODO Auto-generated method stub
if(turnos == null){
turnos = new TreeMap<Integer, Turno>();
}
Turno turno = new Turno(id_Cliente, id_hora_inst, fecha, observacion);
int id = turno.save();
turnos.put(id, turno);
return id;
}
public Turno getTurno(int idTurno) {
// TODO Auto-generated method stub
return turnos.get(idTurno);
}
}