3 * Copyright (c) 2007 - 2008, Blue Static <http://www.bluestatic.org>
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
10 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 #import "Breakpoint.h"
20 @implementation Breakpoint
22 @synthesize file
, line
, debuggerId
;
25 * Initializes a breakpoint with a file and line
27 - (id)initWithLine
:(int)l inFile
:(NSString
*)f
29 if (self = [super init
])
38 * Creates a Breakpoint from the values of an NSDictionary
40 - (id)initWithDictionary
:(NSDictionary
*)dict
42 if (self = [super init
])
44 file
= [dict valueForKey
:@
"file"];
45 line
= [[dict valueForKey
:@
"line"] intValue
];
51 * Determines if two breakpoints are equal
53 - (BOOL)isEqual
:(id)obj
55 return ([[obj file
] isEqualToString
:file
] && [obj line
] == line
);
59 * Returns the hash value of a breakpoint
63 return ([file hash
] << 8) + line
;
67 * Returns an NSDictionary of the data so it can be stored in NSUserDefaults
69 - (NSDictionary
*)dictionary
71 return [NSDictionary dictionaryWithObjectsAndKeys
:file
, @
"file", [NSNumber numberWithInt
:line
], @
"line", nil];
77 - (NSString
*)description
79 return [NSString stringWithFormat
:@
"%@:%i", file
, line
];