A {@link CouchbaseDocument} is an abstract representation of a document stored inside Couchbase Server.
It acts like a {@link HashMap}, but only allows those types to be written that are supported by the underlying storage format, which is currently JSON. Note that JSON conversion is not happening here, but performed at a different stage based on the payload stored in the {@link CouchbaseDocument}.
In addition to the actual content, meta data is also stored. This especially refers to the document ID and its expiration time. Note that this information is not mandatory, since documents can be nested and therefore only the topmost document most likely has an ID.
@author Michael Nitschinger