/*
* Created on 03.12.2007
* Caleido AG, All Rights Reserved
* Author: Luzius Meisser
*/
package quickbase.internal.mixed;
import quickbase.exception.AbortVisitException;
import quickbase.exception.SerializationDatabaseException;
import quickbase.serializer.ISerializer;
import quickbase.service.IVisitor;
public class MixedVisitor<K, V> implements IVisitor<MixedKey, MixedValue> {
private byte id;
private IVisitor<K, V> visitor;
private ISerializer<K> keySerializer;
private ISerializer<V> valueSerializer;
public MixedVisitor(byte id, ISerializer<K> keySerializer, ISerializer<V> valueSerializer, IVisitor<K, V> visitor) {
this.id = id;
this.visitor = visitor;
this.keySerializer = keySerializer;
this.valueSerializer = valueSerializer;
}
public void visit(MixedKey key, MixedValue value) throws SerializationDatabaseException, AbortVisitException {
if (key.getId() == id){
visitor.visit(key.getWrapped(keySerializer), value.getWrapped(valueSerializer));
}
}
}