This is MiniSQLExpression.m in view mode; [Download] [Up]
#import "MiniSQLExpression.h"
#import <eoaccess/eoaccess.h>
#import <foundation/NSUtilities.h>
#import <foundation/NSCharacterSet.h>
@implementation MiniSQLExpression:EOSQLExpression
- whereClauseForQualifier:(EOQualifier *) qualifier
joinExpresssion:joinExpression
// Builds an SQL WHERE clause using the qualifier and joinExpression
{
NSRange rangeOpen;
NSRange rangeClose;
NSMutableString *newExpression =
[NSMutableString stringWithCapacity:80];
NSMutableString *newQualification =
[[qualifier expressionValueForContext:self] mutableCopy];
NSMutableString *newJoinExpression =
[[joinExpression expressionValueForContext:self] mutableCopy];
if (qualifier && newQualification && [newQualification length]) {
for (rangeOpen = [newQualification rangeOfString:@"("];
(rangeOpen.length) != (unsigned int)0;
rangeOpen = [newQualification rangeOfString:@"("]) {
[newQualification deleteCharactersInRange:rangeOpen];
}
for (rangeClose = [newQualification rangeOfString:@")"];
rangeClose.length;
rangeClose = [newQualification rangeOfString:@")"]) {
[newQualification deleteCharactersInRange:rangeClose];
}
[newExpression appendString:newQualification];
}
if (joinExpression && newJoinExpression && [newJoinExpression length]) {
for (rangeOpen = [newJoinExpression rangeOfString:@"("];
rangeOpen.length;
rangeOpen = [newJoinExpression rangeOfString:@"("]) {
[newJoinExpression deleteCharactersInRange:rangeOpen];
}
for (rangeClose = [newJoinExpression rangeOfString:@")"];
rangeClose.length;
rangeClose = [newJoinExpression rangeOfString:@")"]) {
[newJoinExpression deleteCharactersInRange:rangeClose];
}
if ([newQualification length] > 0) {
[newExpression appendString:@" AND "];
}
[newExpression appendString:newJoinExpression];
}
if ([newExpression length] > 0) {
return[NSString stringWithFormat:@"WHERE %@", newExpression];
} else {
return @"";
}
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.