public void update(final StateReader reader, final KeyCreator keyCreator, final VersionCreator versionCreator, final Map<String, DataEncryption> dataEncrypters, final ObjectAdapter object) {
loadState(reader, keyCreator, versionCreator, dataEncrypters, object);
}
private void loadState(final StateReader reader, final KeyCreator keyCreator, final VersionCreator versionCreator, final Map<String, DataEncryption> dataEncrypters, final ObjectAdapter object) {
final ResolveState resolveState = ResolveState.RESOLVING;
object.changeState(resolveState);
Version version = null;
final String versionString = reader.readVersion();
if (!versionString.equals("")) {
final String user = reader.readUser();
final String time = reader.readTime();
version = versionCreator.version(versionString, user, time);
}
final String encryptionType = reader.readEncrytionType();
readFields(reader, object, keyCreator, dataEncrypters.get(encryptionType));
object.setOptimisticLock(version);
object.changeState(resolveState.getEndState());
}