diff options
Diffstat (limited to 'Source/SPFavoriteNode.m')
-rw-r--r-- | Source/SPFavoriteNode.m | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/Source/SPFavoriteNode.m b/Source/SPFavoriteNode.m index 51a9d1aa..55a44653 100644 --- a/Source/SPFavoriteNode.m +++ b/Source/SPFavoriteNode.m @@ -27,28 +27,60 @@ @implementation SPFavoriteNode -@synthesize nodeIsGroup; -@synthesize nodeName; @synthesize nodeFavorite; -@synthesize nodeChildren; + +#pragma mark - +#pragma mark Initialisation - (id)init { if ((self = [super init])) { - [self setNodeIsGroup:NO]; - [self setNodeName:nil]; [self setNodeFavorite:nil]; - [self setNodeChildren:[[NSMutableArray alloc] init]]; } return self; } +- (id)initWithDictionary:(NSDictionary *)dictionary +{ + if ((self = [self init])) { + [self setNodeFavorite:dictionary]; + } + + return self; +} + ++ (SPFavoriteNode *)favoriteNodeWithDictionary:(NSDictionary *)dictionary +{ + return [[[self alloc] initWithDictionary:dictionary] autorelease]; +} + +#pragma mark - +#pragma mark Copying protocol methods + +- (id)copyWithZone:(NSZone *)zone +{ + SPFavoriteNode *node = [[[self class] allocWithZone:zone] init]; + + [node setNodeFavorite:[[self nodeFavorite] copyWithZone:zone]]; + + return node; +} + + +#pragma mark - +#pragma mark Other + +- (NSString *)description +{ + return [NSString stringWithFormat:@"<%@: %p ('%@')>", [self className], self, [[self nodeFavorite] objectForKey:SPFavoriteNameKey]]; +} + +#pragma mark - + - (void)dealloc { - if (nodeName) [nodeName release], nodeName = nil; if (nodeFavorite) [nodeFavorite release], nodeFavorite = nil; - if (nodeChildren) [nodeChildren release], nodeChildren = nil; [super dealloc]; } |