// // NJInputPathElement.m // Enjoyable // // Created by Joe Wreschnig on 3/13/13. // // #include "NJInputPathElement.h" @implementation NJInputPathElement { NSString *_did; } - (id)initWithName:(NSString *)name did:(NSString *)did base:(NJInputPathElement *)base { if ((self = [super init])) { self.name = name; self.base = base; _did = did; } return self; } - (BOOL)isEqual:(id)object { return [object isKindOfClass:NJInputPathElement.class] && [[object uid] isEqualToString:self.uid]; } - (NSUInteger)hash { return self.uid.hash; } - (NSString *)uid { return [NSString stringWithFormat:@"%@~%@", _base.uid, _did]; } - (NJInputPathElement *)elementForUID:(NSString *)uid { if ([uid isEqualToString:self.uid]) return self; else if (![uid hasPrefix:self.uid]) return nil; else { for (NJInputPathElement *elem in self.children) { NJInputPathElement *ret = [elem elementForUID:uid]; if (ret) return ret; } } return nil; } @end