basho/riak-java-client — pull request #414 by broach (2014-04-04 18:58:54+00:00)
Title: Move vclock inside riakobject

This is another "Went the wrong way" once you start playing with the API.

By having the vclock in the `RiakObject` it becomes as transparent as possible to the end user; Get something from Riak, modify it, store it back. Never have to muck with the vector clock.

The only caveat is that user domain objects are now required to have the `@RiakVClock` annotation. I've also annotated `RiakObject` to make that work seamlessly without any type checking.

The `Converter` base abstract class enforces the `@RiakVClock` requirement so that if there is some odd edge case where a user refuses to use the annotation, it could be overridden.

`FetchValue`, `StoreValue`, and `UpdateValue` will all throw a `ConversionException` if the domain object is not annotated. When writing the docs for these classes, we should include a blurb on vector clocks and why this is required.