Listing 3
// Busser.m
#import "Busser.h"
@implementation Busser
// Here is the implementation of the "ServesTables" protocol:
- (NSArray *) takeOrdersFromDiners:(NSArray *)diners {
// create somewhere to take orders
NSMutableArray *orders = [[NSMutableArray alloc] init];
int i;
for (i=0; i < [diners count]; i++) {
NSString *order = [[diners objectAtIndex:i] foodPreference];
[orders addObject:order];
numberOfDinersServed++;
}
return orders;
}
- (BOOL) doesNotLikeDiner: (Diner *)diner withOrder: (NSString *)order {
if ([diner isRude]) {
return YES;
}
return NO;
}
- (void) spillDrinkOnDiner:(Diner *)diner {
NSLog(@"%@ just spilled a drink on %@!", self, diner);
[diner setIsRude:YES];
}
- (double) bringCheckOfAmount:(double)amount toDiner:(Diner *)diner {
return amount;
}
- (BOOL) seemsStressed {
return (numberOfDinersServed > 3);
}
- (void) takeSmokeBreakOf:(int)minutes {
NSLog(@"%@ is on a smoke break of %d minutes", self, minutes);
}
@end