jeroen.io
Class RandomAccessDatabase
java.lang.Object
|
+--java.util.AbstractCollection
|
+--java.util.AbstractList
|
+--jeroen.io.RandomAccessDatabase
- All Implemented Interfaces:
- Collection, List
- public class RandomAccessDatabase
- extends AbstractList
Een klasse die Objecten sequentieel naar
schijf kan schrijven, en RandomAccess van schijf
kan lezen.
|
Constructor Summary |
RandomAccessDatabase(File file)
Opent een database om naar te schrijven. |
RandomAccessDatabase(File file,
Class type)
Met deze constructor maak je een list waarvan je films kunt opvragen,
die eventueel nog op de harde schijf staan.
|
RandomAccessDatabase(File file,
Class type,
int cacheMode)
Met deze constructor maak je een list waarvan je films kunt opvragen,
die eventueel nog op de harde schijf staan.
|
|
Method Summary |
boolean |
add(Object o)
Alleen LeesSchrijfbaar-objecten mogen toegevoegd worden. |
void |
close()
Database is niet geldig totdat deze methode aangeroepen wordt!!! |
Object |
get(int index)
Lees een Object uit de database. |
Iterator |
iterator()
Geef een iterator waarmee je alle Objecten uit de database
kunt halen. |
int |
size()
|
String |
toString()
|
| Methods inherited from class java.util.AbstractList |
add, addAll, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList |
RandomAccessDatabase
public RandomAccessDatabase(File file)
throws IOException
- Opent een database om naar te schrijven.
RandomAccessDatabase
public RandomAccessDatabase(File file,
Class type)
throws IOException
- Met deze constructor maak je een list waarvan je films kunt opvragen,
die eventueel nog op de harde schijf staan.
Alle objecten
worden verwacht van het type 'type' te zijn.
Dat type moet een constructor hebben met als enige
argument een DataInput.
De cache is de default: SOFTCACHE
RandomAccessDatabase
public RandomAccessDatabase(File file,
Class type,
int cacheMode)
throws IOException
- Met deze constructor maak je een list waarvan je films kunt opvragen,
die eventueel nog op de harde schijf staan.
Alle objecten
worden verwacht van het type 'type' te zijn.
Dat type moet een constructor hebben met als enige
argument een DataInput.
De Objecten worden gecached zoals opgegeven aan cacheMode (zie ListCache)
toString
public String toString()
- Overrides:
toString in class AbstractCollection
size
public int size()
- Overrides:
size in class AbstractCollection
get
public Object get(int index)
- Lees een Object uit de database. Wordt gecached. Als het Object
de interface Indexed ondersteuned, wordt die index juist ingesteld.
Als je alle Objecten achtereenvolgens wilt hebben, kun je veel
beter iterator() gebruiken.
- Overrides:
get in class AbstractList
- See Also:
iterator(),
ListCache,
Indexed
iterator
public Iterator iterator()
- Geef een iterator waarmee je alle Objecten uit de database
kunt halen. Zolang de iterator in gebruik is, mag je get() niet
gebruiken!!
Schakelt caching en zo uit, omdat dat bij een iteratie toch geen
zin heeft. Dit is de aanbevolen methode als je alles nodig hebt
(zoals bij het maken van een keywordindex). Als een Object
de interface Indexed ondersteuned, wordt die index juist ingesteld.
- Overrides:
iterator in class AbstractList
add
public boolean add(Object o)
- Alleen LeesSchrijfbaar-objecten mogen toegevoegd worden.
- Overrides:
add in class AbstractList
- Throws:
ClassCastException - als o LeesSchrijfbaar niet implementeert.UnsupportedOperationException - als deze database niet in 'create' mode staat.DatabaseException - als een onverwachte I/O-fout optreedt.
close
public void close()
throws IOException
- Database is niet geldig totdat deze methode aangeroepen wordt!!!
- Throws:
UnsupportedOperationException - als deze database niet in 'create' mode staat.IOException - tsja, dat kan van alles zijn...