/** * INTERNAL: Create an instance of the composite primary key class for the * key object. */ @Deprecated //replaced by method below but may still be used by older clients. public Object createPrimaryKeyInstance(Vector key) { KeyElementAccessor[] pkElementArray = this.getKeyClassFields(getPKClass()); if (pkElementArray.length == 1 && pkElementArray[0] instanceof KeyIsElementAccessor) { return key.get(0); } Object keyInstance = getPKClassInstance(); for (int index = 0; index < pkElementArray.length; index++) { KeyElementAccessor accessor = pkElementArray[index]; Object fieldValue = key.get(index); accessor.setValue(keyInstance, fieldValue); } return keyInstance; }
/** * INTERNAL: * Return the type of the map key, this will be overridden by container policies that allow maps. */ @Override public Object getKeyType(){ initializeKey(); if (keyField != null){ return keyField.getType(); } else if (keyMethod != null){ return keyMethod.getReturnType(); }else if (elementDescriptor != null){ return elementDescriptor.getCMPPolicy().getPKClass(); } return null; }
KeyElementAccessor[] pkElementArray = this.getKeyClassFields(getPKClass()); if (pkElementArray.length == 1 && pkElementArray[0] instanceof KeyIsElementAccessor) { DatabaseMapping mapping = getDescriptor().getObjectBuilder().getMappingForAttributeName(pkElementArray[0].getAttributeName());
/** * INTERNAL: * Return the type of the map key, this will be overridden by container policies that allow maps * @return */ public Object getKeyType(){ initializeKey(); if (keyField != null){ return keyField.getType(); } else if (keyMethod != null){ return keyMethod.getReturnType(); }else if (elementDescriptor != null){ return elementDescriptor.getCMPPolicy().getPKClass(); } return null; }
KeyElementAccessor[] pkElementArray = this.getKeyClassFields(getPKClass()); ObjectBuilder builder = getDescriptor().getObjectBuilder(); if (pkElementArray.length == 1 && pkElementArray[0] instanceof KeyIsElementAccessor){
/** * INTERNAL: * Return the type of the map key, this will be overridden by container policies that allow maps. */ @Override public Object getKeyType(){ initializeKey(); if (keyField != null){ return keyField.getType(); } else if (keyMethod != null){ return keyMethod.getReturnType(); }else if (elementDescriptor != null){ return elementDescriptor.getCMPPolicy().getPKClass(); } return null; }
CMPPolicy refPolicy = refmapping.getReferenceDescriptor().getCMPPolicy(); if (refPolicy.isCMP3Policy()){ Class pkClass = refPolicy.getPKClass(); if ((pkClass != null) && (pkClass != fieldValue.getClass()) && (!pkClass.isAssignableFrom(fieldValue.getClass()))) { throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { refPolicy.getPKClass(), fieldValue.getClass() }));
/** * INTERNAL: * Default to the PK of the owning descriptor when no MapKey or MapKey:name attribute is specified. * Prerequisites: policy on the mapping is of type MappedKeyMapPolicy * @return */ private Class getOwningPKTypeWhenMapKeyAnnotationMissingOrDefaulted(MappedKeyMapContainerPolicy policy) { Class<?> javaClass = null;; MapKeyMapping mapKeyMapping = policy.getKeyMapping(); ClassDescriptor descriptor = ((DatabaseMapping)mapKeyMapping).getDescriptor(); // If the reference descriptor is null then we are on a direct mapping if(null != descriptor) { javaClass = ((DatabaseMapping)mapKeyMapping).getAttributeClassification(); if(null == javaClass) { // Default to the PK of the owning descriptor when no MapKey or MapKey:name attribute is specified if (descriptor.getCMPPolicy() != null) { javaClass = descriptor.getCMPPolicy().getPKClass(); } } } return javaClass; }
} else { CMPPolicy policy = descriptor.getCMPPolicy(); Class pkClass = policy.getPKClass(); if ((pkClass != null) && (pkClass != id.getClass()) && (!BasicTypeHelperImpl.getInstance().isStrictlyAssignableFrom(pkClass, id.getClass()))) { throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { descriptor.getCMPPolicy().getPKClass(), id.getClass() }));
} else { if (descriptor.getCMPPolicy() != null) { if (descriptor.getCMPPolicy().getPKClass() != null && !descriptor.getCMPPolicy().getPKClass().isAssignableFrom(primaryKey.getClass())) { throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { descriptor.getCMPPolicy().getPKClass(), primaryKey.getClass() }));
} else { if (descriptor.getCMPPolicy() != null) { if (descriptor.getCMPPolicy().getPKClass() != null && !descriptor.getCMPPolicy().getPKClass().isAssignableFrom(id.getClass())) { throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { descriptor.getCMPPolicy().getPKClass(), id.getClass() }));
} else { if (descriptor.getCMPPolicy() != null) { if (descriptor.getCMPPolicy().getPKClass() != null && !descriptor.getCMPPolicy().getPKClass().isAssignableFrom(id.getClass())) { throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { descriptor.getCMPPolicy().getPKClass(), id.getClass() }));
setPKClass(refPolicy.getPKClass()); if ((refPolicy!=null) && refPolicy.isCMP3Policy() && (refPolicy.getPKClass() == currentKeyClass)){
CMPPolicy refPolicy = refmapping.getReferenceDescriptor().getCMPPolicy(); if (refPolicy.isCMP3Policy()){ Class aPKClass = refPolicy.getPKClass(); if ((aPKClass != null) && (aPKClass != fieldValue.getClass()) && (!aPKClass.isAssignableFrom(fieldValue.getClass()))) { throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { aPKClass, fieldValue.getClass() }));