if (declaredObjectIdClassName != null) {
// ObjectId is declared, but it might not be qualified
int index = declaredObjectIdClassName.indexOf('.');
if (index == -1) {
// not qualified => try to resolve it
JavaType type = TypeSupport.resolveType(getDeclaringModel(),
declaredObjectIdClassName, getPackagePrefix());
if (type == null) {
throw new ModelFatalException(
msg.msg("EXC_CannotResolveObjectIdClass", //NOI18N
declaredObjectIdClassName, getName()));
}
this.declaredObjectIdClassName = type.getName();
}
}
else {
// not declared, check for single field ObjectId class
JDOField[] declaredPKFields = getDeclaredPrimaryKeyFields();
if ((declaredPKFields != null) && (declaredPKFields.length == 1)) {
// there is one pk field declared by this class =>
// check the type
JavaType fieldType = declaredPKFields[0].getType();
if (fieldType != null) {
return TypeSupport.getSingleFieldObjectIdClassName(
fieldType.getName());
}
}
}
return declaredObjectIdClassName;
}