Package com.escuelademanejo.negocio

Source Code of com.escuelademanejo.negocio.CatalogoClientes

package com.escuelademanejo.negocio;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.TreeMap;

import com.escuelademanejo.persistencia.FactoryPersistencia;
import com.escuelademanejo.persistencia.IPersistenciaController;

public class CatalogoClientes {

  /**
   * Clase que maneja el catalogo de clientes Implementa el patron Singleton
   */

  private static CatalogoClientes INSTANCE = null;

  private TreeMap<Integer, Cliente> clientes = null;
 
  private IPersistenciaController iPersistController = null;

  private CatalogoClientes() throws Exception {
    FactoryPersistencia factPersistencia = FactoryPersistencia.getInstance();
    iPersistController = factPersistencia.getIPersistenciaController();
    if (clientes == null){
      clientes = new TreeMap<Integer, Cliente>();
      TreeMap<Integer, ArrayList<String>> rows_clientes = iPersistController.selectAllClientes();
      Collection<ArrayList<String>> rows_cli = rows_clientes.values();
      for (ArrayList<String> datos_cli : rows_cli) {
        int id_cli= Integer.valueOf(datos_cli.get(0));
        clientes.put(id_cli, new Cliente(datos_cli));
     
    } 
  }

  /**
   *
   * @return Devuelve la unica instancia al CatalogoClientes. Si no existe
   *         crea uno.
   * @throws Exception
   */
  public static CatalogoClientes getInstance() throws Exception {
    if (INSTANCE == null)
      createInstance();
    return INSTANCE;
  }

  private synchronized static void createInstance() throws Exception {
    if (INSTANCE == null) {
      INSTANCE = new CatalogoClientes();
    }
  }

  /**
   * @since El metodo "clone" es sobreescrito por el siguiente que arroja una
   *        excepci�n:
   */
  @Override
  public Object clone() throws CloneNotSupportedException {
    throw new CloneNotSupportedException();
  }

  public void addCliente(String username, String clave, String nombre_completo,
      String telefono, String mail, Date fecha_nacimiento)
      throws Exception {
    // TODO Auto-generated method stub
   
    if(clientes == null)
      clientes = new TreeMap<Integer, Cliente>();
   
    Cliente cli= new Cliente(username, clave, nombre_completo, telefono,
        mail, fecha_nacimiento, new ArrayList<Integer>());
    int id = cli.save();
    clientes.put(id, cli);
  }
 
  public void deleteCliente(int id_cliente) throws Exception {
    // TODO Auto-generated method stub
    if(clientes == null)
      throw new Exception("ERROR: el cliente " + id_cliente + " no existe");
   
    Cliente cli= clientes.get(id_cliente);   
    if (cli == null)
      throw new Exception("ERROR: el cliente " + id_cliente + " no existe");
    else{
      cli.delete();
      cli = clientes.remove(id_cliente);
    }
  }

  public TreeMap<Integer, Cliente> getClientes() {
    // TODO Auto-generated method stub
    return clientes;
  }

  public Cliente getCliente(int id_Cliente) throws Exception {
    // TODO Auto-generated method stub
    if(clientes == null)
      throw new Exception("ERROR: el cliente " + id_Cliente + " no existe");
    else{
      Cliente cli = clientes.get(id_Cliente);
      if(cli == null)
        throw new Exception("ERROR: el cliente " + id_Cliente + " no existe");
      else
        return cli;
    }
  }

  /**
   *
   * @param id_cliente
   *            Es el id del cliente que se quiere buscar. Para indicar que no
   *            se quiere buscar por id se debe ingresar un numero menor o
   *            igual a cero
   * @param username
   *            Es el nombre de usuario del cliente. Para indicar que no se
   *            quiere buscar por nombre de usuario poner username=null
   *
   * PRECOND: se debe ingresar correctamente alguno de los dos par�metros          
   *           
   * @return el cliente si se encontr� o null
   * @throws Exception
   */
  public Cliente getCliente(int id_cliente, String username) throws Exception {
    // TODO Auto-generated method stub
    if(id_cliente > 0)
      return getCliente(id_cliente);
    else {
      if(clientes == null)
        throw new Exception("ERROR: el cliente " + username + " no existe");
      else{
        Iterable<Cliente> cli_iter = clientes.values();
        for (Cliente cliente : cli_iter) {
          if(cliente.getUserName().equalsIgnoreCase(username))
            return cliente;
        }
      }
    }
    return null;
  }
}
TOP

Related Classes of com.escuelademanejo.negocio.CatalogoClientes

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.