Class BaseDeDatos<R extends Registro<R,C>,C extends Enum>

java.lang.Object
mx.unam.ciencias.icc.BaseDeDatos<R,C>
Type Parameters:
R - El tipo de los registros, que deben implementar la interfaz Registro.
C - El tipo de los campos de los registros, que debe ser una enumeración Enum.
Direct Known Subclasses:
BaseDeDatosEstudiantes

public abstract class BaseDeDatos<R extends Registro<R,C>,C extends Enum> extends Object
Clase abstracta para bases de datos genéricas. Provee métodos para agregar y eliminar registros, y para guardarse y cargarse de una entrada y salida dados. Además, puede hacer búsquedas con valores arbitrarios sobre los campos de los registros. Las clases que extiendan a BaseDeDatos deben implementar el método creaRegistro(), que crea un registro genérico en blanco.
  • Constructor Details

    • BaseDeDatos

      public BaseDeDatos()
      Constructor único.
  • Method Details

    • getNumRegistros

      public int getNumRegistros()
      Regresa el número de registros en la base de datos.
      Returns:
      el número de registros en la base de datos.
    • getRegistros

      public Lista<R> getRegistros()
      Regresa una lista con los registros en la base de datos. Modificar esta lista no cambia a la información en la base de datos.
      Returns:
      una lista con los registros en la base de datos.
    • agregaRegistro

      public void agregaRegistro(R registro)
      Agrega el registro recibido a la base de datos.
      Parameters:
      registro - el registro que hay que agregar a la base de datos.
    • eliminaRegistro

      public void eliminaRegistro(R registro)
      Elimina el registro recibido de la base de datos.
      Parameters:
      registro - el registro que hay que eliminar de la base de datos.
    • limpia

      public void limpia()
      Limpia la base de datos.
    • guarda

      public void guarda(BufferedWriter out) throws IOException
      Guarda todos los registros en la base de datos en la salida recibida.
      Parameters:
      out - la salida donde hay que guardar los registos.
      Throws:
      IOException - si ocurre un error de entrada/salida.
    • carga

      public void carga(BufferedReader in) throws IOException
      Carga los registros de la entrada recibida en la base de datos. Si antes de llamar el método había registros en la base de datos, estos son eliminados.
      Parameters:
      in - la entrada de donde hay que cargar los registos.
      Throws:
      IOException - si ocurre un error de entrada/salida.
    • buscaRegistros

      public Lista<R> buscaRegistros(C campo, Object valor)
      Busca registros por un campo específico.
      Parameters:
      campo - el campo del registro por el cuál buscar.
      valor - el valor a buscar.
      Returns:
      una lista con los registros tales que casan el campo especificado con el valor dado.
      Throws:
      IllegalArgumentException - si el campo no es de la enumeración correcta.
    • creaRegistro

      public abstract R creaRegistro()
      Crea un registro en blanco.
      Returns:
      un registro en blanco.