public class TupleCodec implements Codec<Tuple> {
@Override
public Tuple decode(BsonReader reader, DecoderContext decoderContext) {
DocumentCodec documentCodec = new DocumentCodec( );
Document document = documentCodec.decode( reader,decoderContext );
MongoDBTupleSnapshot snapshot = new MongoDBTupleSnapshot( document,null );
return new Tuple( snapshot, Tuple.SnapshotType.UNKNOWN );
}
@Override
public void encode(BsonWriter writer, Tuple value, EncoderContext encoderContext) {
MongoDBTupleSnapshot snapshot = (MongoDBTupleSnapshot) value.getSnapshot();
Document document = snapshot.getDbObject();
DocumentCodec documentCodec = new DocumentCodec( );
documentCodec.encode( writer,document,encoderContext );
}
...
}