EOAttribute attribute = null;
if (ERXValueUtilities.booleanValue(d2wContext.valueForKey("isAttribute"))) {
attribute = d2wContext.attribute();
} else {
EORelationship relationship = d2wContext.relationship();
if (relationship != null && !(value instanceof EOEnterpriseObject)) {
String keyWhenRelationship = (String)d2wContext.valueForKey("keyWhenRelationship");
if (keyWhenRelationship != null) {
EOEntity destinationEntity = relationship.destinationEntity();
attribute = destinationEntity.attributeNamed(keyWhenRelationship);