//package proyect; //package pruebas; /* Clase ABC Sirve para dar de alta a personas en la agenda. La agenda es un Hashtable, donde la llave se forma - al concatenar 2 strings: el nombre y el teléfono. El objeto correspondiente a la llave es del tipo Evento. */ import java.util.*; import java.io.*; /** * *

Title:ABC

*

Description:clase que permite trabajr con tablas hash

* @author Rodrigo Loyola && Gustavo Valdes * @version 1.0 */ public class ABC { /** * Constructor de la Clase ABC El parámetro 'path' indica el nombre y la ubicación del archivo de la agenda. * @param path String indica nombre y ubicación en la agenda */ public ABC(String path) { this.path = path; } /** * metodo que agrega eeventos * @param evento Evento evento a agregar */ public void addEvento(Evento evento) { Hashtable agenda = readAgenda(); agenda.put(evento.getUsuario() + "-" + evento.getMailp(), evento); writeAgenda(agenda); } /** * metodo que permite borrar un evento de la lista * @param key String metodo a borrar */ public void deleteEvento(String key) { Hashtable agenda = readAgenda(); agenda.remove(key); writeAgenda(agenda); } /** * metodo q permite leer una tabla Hash * @return Hashtable tabla hash q contiene los eventos y sus atributos */ public Hashtable readAgenda() { Hashtable agenda = new Hashtable(); try { File f = new File(path); if(!f.exists()) { FileOutputStream fos = new FileOutputStream(f); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(new Hashtable()); oos.close(); fos.close(); } FileInputStream fis = new FileInputStream(f); ObjectInputStream ois = new ObjectInputStream(fis); agenda = (Hashtable)ois.readObject(); ois.close(); fis.close(); } catch (Exception e) { e.printStackTrace(); } return agenda; } /** * metodo q pemite escribir en una tabla hash * @param agenda Hashtable tabla hash a llenar */ public void writeAgenda(Hashtable agenda) { try { File f = new File("agenda.dat"); FileOutputStream fos = new FileOutputStream(f); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(agenda); oos.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } /** * metodo que permite extraer un evento de latabla hash * @param key String indicador del metodo a extraer * @return Evento */ public Evento getEvento(String key) { Evento evento = new Evento(); Hashtable agenda = readAgenda(); if (agenda.get(key) != null) evento = (Evento)agenda.get(key); return evento; } private String path; }