OLD | NEW |
(Empty) | |
| 1 // -*- mode: ObjC -*- |
| 2 |
| 3 // This file is part of class-dump, a utility for examining the Objective-C seg
ment of Mach-O files. |
| 4 // Copyright (C) 1997-1998, 2000-2001, 2004-2010 Steve Nygard. |
| 5 |
| 6 #import "CDVisitorPropertyState.h" |
| 7 |
| 8 #import "CDOCProperty.h" |
| 9 |
| 10 @implementation CDVisitorPropertyState |
| 11 |
| 12 - (id)initWithProperties:(NSArray *)properties; |
| 13 { |
| 14 if ([super init] == nil) |
| 15 return nil; |
| 16 |
| 17 propertiesByAccessor = [[NSMutableDictionary alloc] init]; |
| 18 propertiesByName = [[NSMutableDictionary alloc] init]; |
| 19 |
| 20 for (CDOCProperty *property in properties) { |
| 21 //NSLog(@"property: %@, getter: %@, setter: %@", [property name], [prope
rty getter], [property setter]); |
| 22 [propertiesByName setObject:property forKey:[property name]]; |
| 23 [propertiesByAccessor setObject:property forKey:[property getter]]; |
| 24 if ([property isReadOnly] == NO) |
| 25 [propertiesByAccessor setObject:property forKey:[property setter]]; |
| 26 } |
| 27 |
| 28 return self; |
| 29 } |
| 30 |
| 31 - (void)dealloc; |
| 32 { |
| 33 [propertiesByAccessor release]; |
| 34 [propertiesByName release]; |
| 35 |
| 36 [super dealloc]; |
| 37 } |
| 38 |
| 39 - (CDOCProperty *)propertyForAccessor:(NSString *)str; |
| 40 { |
| 41 return [propertiesByAccessor objectForKey:str]; |
| 42 } |
| 43 |
| 44 - (BOOL)hasUsedProperty:(CDOCProperty *)property; |
| 45 { |
| 46 return [propertiesByName objectForKey:[property name]] == nil; |
| 47 } |
| 48 |
| 49 - (void)useProperty:(CDOCProperty *)property; |
| 50 { |
| 51 [propertiesByName removeObjectForKey:[property name]]; |
| 52 } |
| 53 |
| 54 - (NSArray *)remainingProperties; |
| 55 { |
| 56 return [[propertiesByName allValues] sortedArrayUsingSelector:@selector(asce
ndingCompareByName:)]; |
| 57 } |
| 58 |
| 59 - (void)log; |
| 60 { |
| 61 NSLog(@"propertiesByAccessor: %@", propertiesByAccessor); |
| 62 NSLog(@"propertiesByName: %@", propertiesByName); |
| 63 } |
| 64 |
| 65 @end |
OLD | NEW |