package org.reldb.rel.v0.storage.tables; import org.reldb.rel.v0.generator.Generator; import org.reldb.rel.v0.storage.relvars.RelvarExternal; import org.reldb.rel.v0.values.RelTupleFilter; import org.reldb.rel.v0.values.RelTupleMap; import org.reldb.rel.v0.values.TupleFilter; import org.reldb.rel.v0.values.TupleIterator; import org.reldb.rel.v0.values.ValueRelation; import org.reldb.rel.v0.values.ValueTuple; import org.reldb.rel.v0.vm.Context; public interface TableExternal { public enum DuplicateHandling { DUP_COUNT, AUTOKEY, DUP_REMOVE } public TupleIterator iterator(); public TupleIterator iterator(Generator generator); public long getCardinality(); public boolean contains(Generator generator, ValueTuple tuple); public ValueTuple getTupleForKey(Generator generator, ValueTuple tuple); public void setValue(RelvarExternal relvarCSV, ValueRelation relation); public long insert(Generator generator, ValueRelation relation); public long insert(Generator generator, ValueTuple tuple); public long insertNoDuplicates(Generator generator, ValueRelation relation); public void purge(); public void delete(Generator generator, ValueTuple tuple); public long delete(Generator generator, RelTupleFilter relTupleFilter); public long delete(Generator generator, TupleFilter filter); public long delete(Context context, ValueRelation tuplesToDelete, boolean errorIfNotIncluded); public long update(Generator generator, RelTupleMap relTupleMap); public long update(Generator generator, RelTupleFilter relTupleFilter, RelTupleMap relTupleMap); }