-
Notifications
You must be signed in to change notification settings - Fork 644
/
GBSourceInfo.m
58 lines (43 loc) · 1.37 KB
/
GBSourceInfo.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
//
// GBSourceInfo.m
// appledoc
//
// Created by Tomaz Kragelj on 23.9.10.
// Copyright (C) 2010, Gentle Bytes. All rights reserved.
//
#import "GBSourceInfo.h"
@interface GBSourceInfo ()
@property (readwrite, copy) NSString *fullpath;
@property (readwrite, copy) NSString *filename;
@property (readwrite, assign) NSUInteger lineNumber;
@end
#pragma mark -
@implementation GBSourceInfo
#pragma mark Initialization & disposal
+ (id)infoWithFilename:(NSString *)filename lineNumber:(NSUInteger)lineNumber {
NSParameterAssert(filename != nil);
NSParameterAssert([filename length] > 0);
GBSourceInfo *result = [[[GBSourceInfo alloc] init] autorelease];
result.fullpath = [filename stringByStandardizingPath];
result.filename = [filename lastPathComponent];
result.lineNumber = lineNumber;
return result;
}
#pragma mark Helper methods
- (NSComparisonResult)compare:(GBSourceInfo *)data {
NSComparisonResult result = [self.filename compare:data.filename];
if (result == NSOrderedSame) {
if (data.lineNumber > self.lineNumber) return NSOrderedAscending;
if (data.lineNumber < self.lineNumber) return NSOrderedDescending;
}
return result;
}
#pragma mark Overriden methods
- (NSString *)description {
return [NSString stringWithFormat:@"%@@%lu", self.filename, self.lineNumber];
}
#pragma mark Properties
@synthesize fullpath;
@synthesize filename;
@synthesize lineNumber;
@end