import java.io.*; import java.util.*; /// Clase base para manipular Altas-Bajas-Cambios. /** * Clase base para manipular Altas-Bajas-Cambios. * @author Antonio Carrillo Ledesma * @date Verano 2011 * @version 0.0.1 * @bug No errors detected * @todo ... */ public abstract class EstructuraABC { /// Lista public ArrayList lista; public EstructuraABC() { lista = new ArrayList(); } /// Borra todo el contenido de la lista private void borrarTodo() { lista.clear(); } /// Adiciona un registro al final de la lista abstract int adicionar(); /// Visualiza el contenido del registro solicitado public int visualiza(int pos) { if (pos >= 0 && pos < lista.size()) { lista.get(pos).visualizaRegistro(); return 0; } return 1; } /// Visualiza todo el contenido de la lista public int visualizaTodos() { Iterator iter = lista.iterator(); while (iter.hasNext()) { iter.next().visualizaRegistro(); } return 0; // Error } /// Visualiza el registro de la lista solicitado int borrar(int pos) { if (pos >= 0 && pos < lista.size()) { lista.remove(pos); return 0; } return 1; } /// Modifica el registro de la lista solicitado int modificar(int pos) { if (pos >= 0 && pos < lista.size()) { lista.get(pos).modificarRegistro(); return 0; } return 1; } /// Leer una lista de disco @SuppressWarnings("unchecked") int leer(String arch) { try { FileInputStream fileIn = new FileInputStream(arch); ObjectInputStream in = new ObjectInputStream(fileIn); Object obj = in.readObject(); lista = (ArrayList) obj; in.close(); fileIn.close(); visualizaTodos(); } catch(Exception e) { e.printStackTrace(); } return 0; } /// Grabar una lista en disco int grabar(String arch) { try { FileOutputStream fileOut = new FileOutputStream(arch); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(lista); out.close(); fileOut.close(); } catch(Exception e) {} return 0; } /// Regresa el numero de registros en la lista int regresaNRegs() { return lista.size(); } };