/*
* Created on 01.12.2007
* Caleido AG, All Rights Reserved
* Author: Luzius Meisser
*/
package quickbase.internal.consumer;
import quickbase.exception.AbortVisitException;
import quickbase.exception.BasicFileOperationDatabaseException;
import quickbase.exception.IExceptionHandlingStrategy;
import quickbase.exception.SerializationDatabaseException;
import quickbase.internal.entries.AddEntry;
import quickbase.internal.entries.HashFunction;
import quickbase.internal.files.DataFiles;
import quickbase.internal.index.Index;
import quickbase.serializer.ISerializer;
import quickbase.service.IVisitor;
public class VisitConsumer<K, V> extends AbstractConsumer<K, V> {
private ISerializer<K> keySerializer;
private ISerializer<V> valueSerializer;
private IVisitor<K, V> visitor;
public VisitConsumer(HashFunction<K> hash, IExceptionHandlingStrategy strategy, ISerializer<K> keySerializer, ISerializer<V> valueSerializer, IVisitor<K, V> visitor, Index index, DataFiles data) {
super(hash, strategy, index, data);
this.keySerializer = keySerializer;
this.valueSerializer = valueSerializer;
this.visitor = visitor;
}
protected void visit(AddEntry entry) throws SerializationDatabaseException, AbortVisitException {
visitor.visit(keySerializer.fromBytes(entry.getKey(), 0), valueSerializer.fromBytes(entry.getValue(), 0));
}
public void flush() throws BasicFileOperationDatabaseException {
}
}