-
Notifications
You must be signed in to change notification settings - Fork 644
/
GBCommentParagraph.m
68 lines (54 loc) · 1.77 KB
/
GBCommentParagraph.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//
// GBCommentParagraph.m
// appledoc
//
// Created by Tomaz Kragelj on 27.8.10.
// Copyright (C) 2010, Gentle Bytes. All rights reserved.
//
#import "GBParagraphItem.h"
#import "GBCommentParagraph.h"
@implementation GBCommentParagraph
#pragma mark Initialization & disposal
+ (id)paragraph {
return [[[self alloc] init] autorelease];
}
- (id)init {
self = [super init];
if (self) {
_items = [[NSMutableArray alloc] init];
}
return self;
}
#pragma mark Items handling
- (void)registerItem:(GBParagraphItem *)item {
NSParameterAssert(item != nil);
GBLogDebug(@"%@: Registering %@...", self, item);
[_items addObject:item];
}
#pragma mark Overriden methods
- (NSString *)description {
NSString *desc = [self.stringValue length] > 0 ? [self.stringValue normalizedDescription] : @"";
return [NSString stringWithFormat:@"Paragraph '%@'", desc];
}
- (NSString *)debugDescription {
NSMutableString *result = [NSMutableString stringWithFormat:@"%@{ ", [self className]];
if ([self.paragraphItems count] > 1) [result appendString:@"\n"];
[self.paragraphItems enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[result appendString:[obj debugDescription]];
if (idx < [self.paragraphItems count]-1) [result appendString:@",\n"];
}];
[result appendString:([self.paragraphItems count] > 1) ? @"\n}" : @" }"];
return result;
}
#pragma mark Properties
- (NSString *)stringValue {
NSMutableString *result = [NSMutableString stringWithCapacity:1000];
for (GBParagraphItem *item in self.paragraphItems) {
NSString *string = [item stringValue];
if (item != [self.paragraphItems lastObject] && ![string hasSuffix:@"\n"]) string = [string stringByAppendingString:@"\n"];
[result appendString:string];
}
return result;
}
@synthesize paragraphItems = _items;
@end