| Index: class-dump/src/CDVisitorPropertyState.m
|
| ===================================================================
|
| --- class-dump/src/CDVisitorPropertyState.m (revision 0)
|
| +++ class-dump/src/CDVisitorPropertyState.m (revision 0)
|
| @@ -0,0 +1,65 @@
|
| +// -*- mode: ObjC -*-
|
| +
|
| +// This file is part of class-dump, a utility for examining the Objective-C segment of Mach-O files.
|
| +// Copyright (C) 1997-1998, 2000-2001, 2004-2010 Steve Nygard.
|
| +
|
| +#import "CDVisitorPropertyState.h"
|
| +
|
| +#import "CDOCProperty.h"
|
| +
|
| +@implementation CDVisitorPropertyState
|
| +
|
| +- (id)initWithProperties:(NSArray *)properties;
|
| +{
|
| + if ([super init] == nil)
|
| + return nil;
|
| +
|
| + propertiesByAccessor = [[NSMutableDictionary alloc] init];
|
| + propertiesByName = [[NSMutableDictionary alloc] init];
|
| +
|
| + for (CDOCProperty *property in properties) {
|
| + //NSLog(@"property: %@, getter: %@, setter: %@", [property name], [property getter], [property setter]);
|
| + [propertiesByName setObject:property forKey:[property name]];
|
| + [propertiesByAccessor setObject:property forKey:[property getter]];
|
| + if ([property isReadOnly] == NO)
|
| + [propertiesByAccessor setObject:property forKey:[property setter]];
|
| + }
|
| +
|
| + return self;
|
| +}
|
| +
|
| +- (void)dealloc;
|
| +{
|
| + [propertiesByAccessor release];
|
| + [propertiesByName release];
|
| +
|
| + [super dealloc];
|
| +}
|
| +
|
| +- (CDOCProperty *)propertyForAccessor:(NSString *)str;
|
| +{
|
| + return [propertiesByAccessor objectForKey:str];
|
| +}
|
| +
|
| +- (BOOL)hasUsedProperty:(CDOCProperty *)property;
|
| +{
|
| + return [propertiesByName objectForKey:[property name]] == nil;
|
| +}
|
| +
|
| +- (void)useProperty:(CDOCProperty *)property;
|
| +{
|
| + [propertiesByName removeObjectForKey:[property name]];
|
| +}
|
| +
|
| +- (NSArray *)remainingProperties;
|
| +{
|
| + return [[propertiesByName allValues] sortedArrayUsingSelector:@selector(ascendingCompareByName:)];
|
| +}
|
| +
|
| +- (void)log;
|
| +{
|
| + NSLog(@"propertiesByAccessor: %@", propertiesByAccessor);
|
| + NSLog(@"propertiesByName: %@", propertiesByName);
|
| +}
|
| +
|
| +@end
|
|
|
| Property changes on: class-dump/src/CDVisitorPropertyState.m
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|