@Override public Class<?> getAttributeClass() { if (getMapping().isForeignReferenceMapping()) { ForeignReferenceMapping refMapping = (ForeignReferenceMapping) getMapping(); if (refMapping.isCollectionMapping()) { return ((CollectionMapping) refMapping).getContainerPolicy().getContainerClass(); } if (refMapping.usesIndirection()) { return ValueHolderInterface.class; } return refMapping.getReferenceClass(); } else { if (getMapping().getAttributeClassification() == null) { return ClassConstants.OBJECT; } return getMapping().getAttributeClassification(); } } }