visitAttributeDefinition( attributeDefinition );
}
}
private void visitAttributeDefinition(AttributeDefinition attributeDefinition) {
final PropertyPath subPath = currentPropertyPath.append( attributeDefinition.getName() );
log.debug( "Visiting attribute path : " + subPath.getFullPath() );
final boolean continueWalk;
if ( attributeDefinition.getType().isAssociationType() &&
isDuplicateAssociationKey( ( (AssociationAttributeDefinition) attributeDefinition ).getAssociationKey() ) ) {
log.debug( "Property path deemed to be circular : " + subPath.getFullPath() );
continueWalk = false;
}
else {
continueWalk = strategy.startingAttribute( attributeDefinition );
}
if ( continueWalk ) {
final PropertyPath old = currentPropertyPath;
currentPropertyPath = subPath;
try {
if ( attributeDefinition.getType().isAssociationType() ) {
visitAssociation( (AssociationAttributeDefinition) attributeDefinition );
}