endOffset = offset + HelperBinaryConversion.NULL_BYTE_SIZE;
objectAndPersistInfo = ObjectAndPersistInfo.NULL;
referenceRead = false;
} else if (typeId == HelperBinaryConversion.REFERENCE_TYPE) {
AbstractConverter binaryConverter;
try {
binaryConverter = helperBinaryConversion.nullableAndTypedReferenceConverter;
binaryConverter.fromBinary(binary, offset);
} catch (BinaryConverterException exception) {
throw new ObjectIOException(exception);
}
if (binaryConverter.valueDefinedFromBinary) {
/*
* reference
*/
identifier = (DataRecordIdentifier)
/**/binaryConverter.objectFromBinary;
binaryConverter.objectFromBinary = null;// NOPMD
if (identifier == null) {
objectAndPersistInfo = ObjectAndPersistInfo.NULL_DEFINED;
} else {
objectAndPersistInfo = objectIoManager
.createObjectReadingInStoreOrGetExisting(
identifier, false/* lazy if proxy mode enable */);
}
referenceRead = true;
} else {
objectAndPersistInfo = ObjectAndPersistInfo.NULL;
referenceRead = true;
}
endOffset = offset
+ HelperBinaryConversion.REFERENCE_NULLABLE_BYTE_SIZE;
} else {
/*
* basic type
*/
int byteSize;
byteSize = helperBinaryConversion.byteSize(binary[offset]);
AbstractConverter binaryConverter;
try {
binaryConverter = (AbstractConverter) helperBinaryConversion
.fromBinary(binary, offset);
} catch (BinaryConverterException exception) {
throw new ObjectIOException(exception);