aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPFavoriteNode.m
diff options
context:
space:
mode:
Diffstat (limited to 'Source/SPFavoriteNode.m')
-rw-r--r--Source/SPFavoriteNode.m48
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];
}