public EOFetchSpecification fetchSpecificationFromRequest(String entityName) {
EOFetchSpecification fs = null;
if(context().request().formValueKeys().containsObject(fetchSpecificationKey)) {
String fsName = context().request().stringFormValueForKey(fetchSpecificationKey);
if(ERXStringUtilities.stringIsNullOrEmpty(fsName)) {
EOEntity rootEntity = ERXEOAccessUtilities.entityNamed(session().defaultEditingContext(), entityName);
NSMutableArray qualifiers = new NSMutableArray();
for(Enumeration e = context().request().formValueKeys().objectEnumerator(); e.hasMoreElements(); ) {
String key = (String)e.nextElement();
EOEntity entity = rootEntity;
EOAttribute attribute = null;
String attributeName = key;
if(key.indexOf(".") > 0) {
String path = ERXStringUtilities.keyPathWithoutLastProperty(key);
attributeName = ERXStringUtilities.lastPropertyKeyInKeyPath(key);
entity = ERXEOAccessUtilities.destinationEntityForKeyPath(rootEntity, path);
}
if(entity != null) {
attribute = entity.attributeNamed(attributeName);
if(attribute != null) {
String stringValue = context().request().stringFormValueForKey(key);
if(stringValue != null) {
Object value = null;
NSSelector selector = EOKeyValueQualifier.QualifierOperatorEqual;