2018-11-19 15:16:12 +01:00
|
|
|
package org.warp.jcwdb;
|
|
|
|
|
2018-11-20 18:39:48 +01:00
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
public class EntryReference<T> {
|
2018-11-19 15:16:12 +01:00
|
|
|
private final JCWDatabase db;
|
|
|
|
private final long entryId;
|
2018-11-20 18:39:48 +01:00
|
|
|
private final DBTypeParser<T> parser;
|
2018-11-19 15:16:12 +01:00
|
|
|
public T value;
|
|
|
|
|
2018-11-20 18:39:48 +01:00
|
|
|
public EntryReference(JCWDatabase db, long entryId, DBTypeParser<T> parser) throws IOException {
|
2018-11-19 15:16:12 +01:00
|
|
|
this.db = db;
|
|
|
|
this.entryId = entryId;
|
|
|
|
this.parser = parser;
|
2018-11-20 18:39:48 +01:00
|
|
|
this.value = db.getIndexManager().get(entryId, parser.getReader());
|
2018-11-19 15:16:12 +01:00
|
|
|
}
|
|
|
|
|
2018-11-20 18:39:48 +01:00
|
|
|
public void save() throws IOException {
|
|
|
|
db.getIndexManager().set(entryId, parser.getWriter(value));
|
2018-11-19 15:16:12 +01:00
|
|
|
}
|
|
|
|
}
|