public static Key getKeyForObject(Object pc, ExecutionContext ec) { AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(pc.getClass(), ec.getClassLoaderResolver()); if (cmd.getIdentityType() == IdentityType.DATASTORE) { OID oid = (OID)ec.getApiAdapter().getIdForObject(pc); if (oid == null) { // Not yet persistent, so return null return null; } Object keyValue = oid.getKeyValue(); return EntityUtils.getPkAsKey(keyValue, cmd, ec); } else { // TODO Cater for composite identity Object internalPk = ec.getApiAdapter().getTargetKeyForSingleFieldIdentity(ec.getApiAdapter().getIdForObject(pc)); if (internalPk == null) { // Not yet persistent, so return null return null; } return EntityUtils.getPkAsKey(internalPk, ec.getMetaDataManager().getMetaDataForClass(pc.getClass(), ec.getClassLoaderResolver()), ec); } }
public static Key getPkAsKey(ObjectProvider op) { if (op.getClassMetaData().getIdentityType() == IdentityType.DATASTORE) { OID oid = (OID)op.getInternalObjectId(); Object keyValue = oid.getKeyValue(); return EntityUtils.getPkAsKey(keyValue, op.getClassMetaData(), op.getExecutionContext()); } else { // TODO Support composite PK Object pk = op.getExecutionContext().getApiAdapter().getTargetKeyForSingleFieldIdentity(op.getInternalObjectId()); if (pk == null) { throw new IllegalStateException("Primary key for object of type " + op.getClassMetaData().getName() + " is null."); } return EntityUtils.getPkAsKey(pk, op.getClassMetaData(), op.getExecutionContext()); } }
public static Key getPrimaryKeyAsKey(ApiAdapter apiAdapter, ObjectProvider op) { if (op.getClassMetaData().getIdentityType() == IdentityType.DATASTORE) { OID oid = (OID)op.getInternalObjectId(); Object keyValue = oid.getKeyValue(); return getPrimaryKeyAsKey(keyValue, op.getExecutionContext(), op.getClassMetaData()); } else { Object primaryKey = apiAdapter.getTargetKeyForSingleFieldIdentity(op.getInternalObjectId()); return getPrimaryKeyAsKey(primaryKey, op.getExecutionContext(), op.getClassMetaData()); } }
if (childCmd.getIdentityType() == IdentityType.DATASTORE) { OID oid = (OID)valueID; Object keyValue = oid.getKeyValue(); return EntityUtils.getPkAsKey(keyValue, childCmd, ec); } else {