/*
* BestandsOrganisatie.java - Joris van Rantwijk
* in2026 Inleiding databeheer
*
* Definitie van een abstracte bestandsorganisatie.
*/
import java.io.IOException;
/*
* We definieren een abstracte class BestandsOrganisatie, die alle
* elementaire operaties op databases uit kan voeren. Deze zal dienen als
* superclass voor een aantal verschillende bestandsorganisaties.
*/
//===========================================================================
// Class BestandsOrganisatie
// Abstracte superclass voor bestandsorganisaties.
//===========================================================================
abstract class BestandsOrganisatie
{
// Het gebruikte recordtype
protected Class recordType;
// De lengte van een record in de file
protected int recordLen;
// Het aantal uitgevoerde diskaccesses.
// Initialiseer dit op nul bij het openen van het bestand.
public int diskaccess = 0;
// Verwerk alle wijzigingen. Sluit het bestand.
// Geef een IOException als er iets mis gaat met lezen of schrijven.
//-----------------------------------------------------------------------
public abstract void close() throws IOException;
// Voeg een record toe.
// Geef een Exception als er al een record met dezelfde key bestaat.
// Geef een IOException als er iets mis gaat met lezen of schrijven.
//-----------------------------------------------------------------------
public abstract void insert(Record rec) throws Exception, IOException;
// Vervang een bestaand record.
// Geef een Exception als het record niet wordt gevonden.
// Geef een IOException als er iets mis gaat met lezen of schrijven.
//-----------------------------------------------------------------------
public abstract void update(Record rec) throws Exception, IOException;
// Zoek het record met de gegeven key en geef het terug.
// Geef 'null' terug als het record niet wordt gevonden.
// Geef een IOException als er iets mis gaat met lezen.
//-----------------------------------------------------------------------
public abstract Record retrieve(int key) throws IOException;
// Verwijder het record met de gegeven key.
// Geef een Exception als het record niet wordt gevonden.
// Geef een IOException als er iets mis gaat met lezen of schrijven.
//-----------------------------------------------------------------------
public abstract void delete(int key) throws Exception, IOException;
}
//===========================================================================
// End
//===========================================================================