// application-identity
DatastoreClass elementCT =
storeMgr.getDatastoreClass(cmd.getPersistenceCapableSuperclass(), clr);
if (elementCT != null) {
// Superclass has a table so copy its PK mappings
ColumnMetaDataContainer colContainer = null;
if (cmd.getInheritanceMetaData() != null) {
// Try via <inheritance><join>...</join></inheritance>
colContainer = cmd.getInheritanceMetaData().getJoinMetaData();
}
if (colContainer == null) {
// Try via <primary-key>...</primary-key>
colContainer = cmd.getPrimaryKeyMetaData();
}
addApplicationIdUsingClassTableId(colContainer, elementCT, clr, cmd);
} else {
// Superclass has no table so create new mappings and columns
AbstractClassMetaData pkCmd =
storeMgr.getClassWithPrimaryKeyForClass(cmd.getSuperAbstractClassMetaData(), clr);
if (pkCmd != null) {
pkMappings = new JavaTypeMapping[pkCmd.getNoOfPrimaryKeyMembers()];
pkFieldNum = 0;
fieldCount = pkCmd.getNoOfInheritedManagedMembers() + pkCmd.getNoOfManagedMembers();
for (int absFieldNum = 0; absFieldNum < fieldCount; ++absFieldNum) {
AbstractMemberMetaData fmd = pkCmd
.getMetaDataForManagedMemberAtAbsolutePosition(absFieldNum);
if (fmd.isPrimaryKey()) {
AbstractMemberMetaData overriddenFmd = cmd.getOverriddenMember(fmd.getName());
if (overriddenFmd != null) {
// PK field is overridden so use the overriding definition
fmd = overriddenFmd;
}
if (fmd.getPersistenceModifier() == FieldPersistenceModifier.PERSISTENT) {
fieldsToAdd[pkFieldNum++] = fmd;
} else if (fmd.getPersistenceModifier() != FieldPersistenceModifier.TRANSACTIONAL) {
throw new NucleusException("Invalid persistence-modifier for field " + fmd.getName()).setFatal();
}
}
}
}
}
} else if (cmd.getIdentityType() == IdentityType.DATASTORE) {
// datastore-identity
ColumnMetaDataContainer colContainer = null;
if (cmd.getIdentityMetaData() != null
&& cmd.getIdentityMetaData().getColumnMetaData() != null &&
cmd.getIdentityMetaData().getColumnMetaData().length > 0) {
// Try via <datastore-identity>...</datastore-identity>
colContainer = cmd.getIdentityMetaData();