package net.jxta.impl.cm.srdi.bdb;
import java.net.URI;
import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroupID;
import com.sleepycat.bind.tuple.TupleBinding;
import com.sleepycat.bind.tuple.TupleInput;
import com.sleepycat.bind.tuple.TupleOutput;
public class SrdiIndexKeyTupleBinding extends TupleBinding<SrdiIndexKey> {
@Override
public SrdiIndexKey entryToObject(TupleInput input) {
String groupIdStr = input.readString();
String indexName = input.readString();
String primaryKey = input.readString();
String attribute = input.readString();
String value = input.readString();
String peerIdStr = input.readString();
PeerGroupID groupId = PeerGroupID.create(URI.create(groupIdStr));
PeerID peerId = PeerID.create(URI.create(peerIdStr));
return new SrdiIndexKey(groupId, indexName, primaryKey, attribute, value, peerId);
}
@Override
public void objectToEntry(SrdiIndexKey object, TupleOutput output) {
output.writeString(object.getGroupId().toURI().toString());
if(object.getIndexName() == null) return;
output.writeString(object.getIndexName());
if(object.getPrimaryKey() == null) return;
output.writeString(object.getPrimaryKey());
if(object.getAttribute() == null) return;
output.writeString(object.getAttribute());
if(object.getValue() == null) return;
output.writeString(object.getValue());
if(object.getPeerId() == null) return;
output.writeString(object.getPeerId().toURI().toString());
}
}