if ( (size==0) || (clone==null) ){
return;
}
ClassDescriptor descriptor = unitOfWork.getDescriptor(clone);
for (int index = 0; index < size; index++) {
DatabaseMapping mapping = descriptor.getMappingForAttributeName((String)joinManager.getJoinedAttributes().get(index));
if (mapping !=null){
Object attributeValue = mapping.getRealAttributeValueFromObject(clone, unitOfWork);
if (attributeValue != null){
if ( mapping.isForeignReferenceMapping() && (((ForeignReferenceMapping)mapping).getIndirectionPolicy().usesTransparentIndirection()) ) {
((IndirectContainer)attributeValue).getValueHolder().getValue();
}
//recurse through the mapping if the expression's base isn't the base expressionBuilder
QueryKeyExpression queryKeyExpression = (QueryKeyExpression)joinExpressions.get(index);
if (!queryKeyExpression.getBaseExpression().isExpressionBuilder()){
ObjectLevelReadQuery nestedQuery =null;
//if (joinManager.getJoinedMappingQueryClones()==null){
if (joinManager.getJoinedMappingQueries_()!=null){
nestedQuery = (ObjectLevelReadQuery)joinManager.getJoinedMappingQueries_().get(mapping);
}
/*}else{
nestedQuery = joinManager.getJoinedMappingQueryClones().get(mapping);
}*/
if ( (nestedQuery!=null) && (nestedQuery.getJoinedAttributeManager()!=null)){
if (!mapping.isCollectionMapping()){
triggerJoinExpressions(unitOfWork, nestedQuery.getJoinedAttributeManager(), attributeValue);
}else {
ContainerPolicy cp = ((CollectionMapping)mapping).getContainerPolicy();
Object iterator = cp.iteratorFor(attributeValue);
while (cp.hasNext(iterator)){