throws ImportException, ImportDataCorruptedException,
ImportInvalidClassException, ImportNotSerializableException,
ImportClassNotFoundException {
try {
final ClassInfo valueClassInfo = classDef.getReplacementClass();
ObjectModelForImport objectModelForImport;
if ("null".equals(value)) {
objectModelForImport = ObjectModelForImport.NULL;
} else {
final boolean notPrimitive = true ^ valueClassInfo
.isPrimitiveType();
final Object newInstance;
if (valueClassInfo.isByteType()) {
newInstance = Byte.valueOf(value);
} else if (valueClassInfo.isShortType()) {
newInstance = Short.valueOf(value);
} else if (valueClassInfo.isIntegertype()) {
newInstance = Integer.valueOf(value);
} else if (valueClassInfo.isLongType()) {
newInstance = Long.valueOf(value);
} else if (valueClassInfo.isCharacterType()) {
newInstance = Character.valueOf((char) Integer.valueOf(// NOPMD
value)// NOPMD
.intValue());
} else if (valueClassInfo.isBooleantype()) {
checkBooleanValue(value);
newInstance = Boolean.valueOf(value);
} else if (valueClassInfo.isFloatType()) {
newInstance = Float.valueOf(value);
} else if (valueClassInfo.isDoubleType()) {
newInstance = Double.valueOf(value);
} else {
throw new ImportException("not managed basic type "
+ valueClassInfo);
}
final DataRecordIdentifier dataRecordIdentifier;
if (createDataRecordIdentifierIfNeeded && notPrimitive) {
dataRecordIdentifier = createDataRecordIdentifierAssociatedToObject(newInstance);
} else {
dataRecordIdentifier = null;
}
objectModelForImport = new ObjectModelForImport(
dataRecordIdentifier, classDef.getReplacementDef(),
newInstance, valueClassInfo, true);
}
return objectModelForImport;
} catch (final NumberFormatException exception) {