process(mapping);
processContainerPolicyAndIndirection((ContainerMapping) mapping);
if (mapping instanceof DirectCollectionMapping) {
DirectCollectionMapping directCollectionMapping = (DirectCollectionMapping) mapping;
// Process the container and indirection policies.
// Process the value column (we must process this field before the
// call to processConverter, since it may set a field classification)
directCollectionMapping.setDirectField(getDatabaseField(getReferenceDatabaseTable(), MetadataLogger.VALUE_COLUMN));
// To resolve any generic types (or respect an attribute type
// specification) we need to set the attribute classification on the
// mapping to ensure we do the right conversions.
if (hasAttributeType() || getAccessibleObject().isGenericCollectionType()) {
directCollectionMapping.setDirectFieldClassificationName(getJavaClassName(getReferenceClass()));
}
} else if (mapping.isAbstractCompositeDirectCollectionMapping()) {
((AbstractCompositeDirectCollectionMapping) mapping).setField(getDatabaseField(getDescriptor().getPrimaryTable(), MetadataLogger.COLUMN));
}