dupeguru-cocoa/cocoalib/ValueTransformers.m

80 lines
1.4 KiB
Objective-C

/*
Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.gnu.org/licenses/gpl-3.0.html
*/
#import "ValueTransformers.h"
#import "Utils.h"
@implementation VTIsIntIn
- (id)initWithValues:(NSIndexSet *)values
{
return [self initWithValues:values reverse:NO];
}
- (id)initWithValues:(NSIndexSet *)values reverse:(BOOL)doReverse
{
self = [super init];
ints = values;
[ints retain];
reverse = doReverse;
return self;
}
- (void)dealloc
{
[ints release];
[super dealloc];
}
+ (Class)transformedValueClass
{
return [NSNumber class]; //Boolean
}
+ (BOOL)allowsReverseTransformation
{
return NO;
}
- (id)transformedValue:(id)value
{
if (value == nil)
return nil;
NSNumber *i = value;
BOOL r = [ints containsIndex:[i intValue]];
if (reverse)
r = !r;
return [NSNumber numberWithBool:r];
}
@end
@implementation HSVTAdd
- (id)initWithValue:(int)value
{
self = [super init];
toAdd = value;
return self;
}
+ (Class)transformedValueClass
{
return [NSNumber class];
}
+ (BOOL)allowsReverseTransformation
{
return NO;
}
- (id)transformedValue:(id)value
{
if (value == nil)
return nil;
return i2n(n2i(value) + toAdd);
}
@end