private int readEnumConstantName(final byte[] binary, final int offset)
throws ObjectIOException {
int localOffset = offset;
final char[] charArray;
try {
AbstractConverter binaryConverter;
binaryConverter = helperBinaryConversion.integerConverter;
binaryConverter.fromBinary(binary, localOffset);
if (!binaryConverter.valueDefinedFromBinary) {
throw new ObjectIOException(
"char array length value must be defined");
}
final int charArrayLength = (Integer) binaryConverter.objectFromBinary;
binaryConverter.objectFromBinary = null;// NOPMD
localOffset += HelperBinaryConversion.INT_BYTE_SIZE;
charArray = new char[charArrayLength];
binaryConverter = helperBinaryConversion.characterConverter;
for (int index = 0; index < charArrayLength; index++) {
binaryConverter.fromBinary(binary, localOffset);
if (!binaryConverter.valueDefinedFromBinary) {
throw new ObjectIOException("char value must be defined");
}
charArray[index] = ((Character) binaryConverter.objectFromBinary)
.charValue();