mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-08-25 11:55:28 -04:00
added files via upload
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
//
|
||||
// FLEXSearchToken.m
|
||||
// FLEX
|
||||
//
|
||||
// Created by Tanner on 3/22/17.
|
||||
// Copyright © 2017 Tanner Bennett. All rights reserved.
|
||||
//
|
||||
|
||||
#import "FLEXSearchToken.h"
|
||||
|
||||
@interface FLEXSearchToken () {
|
||||
NSString *flex_description;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation FLEXSearchToken
|
||||
|
||||
+ (instancetype)any {
|
||||
static FLEXSearchToken *any = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
any = [self string:nil options:TBWildcardOptionsAny];
|
||||
});
|
||||
|
||||
return any;
|
||||
}
|
||||
|
||||
+ (instancetype)string:(NSString *)string options:(TBWildcardOptions)options {
|
||||
FLEXSearchToken *token = [self new];
|
||||
token->_string = string;
|
||||
token->_options = options;
|
||||
return token;
|
||||
}
|
||||
|
||||
- (BOOL)isAbsolute {
|
||||
return _options == TBWildcardOptionsNone;
|
||||
}
|
||||
|
||||
- (BOOL)isAny {
|
||||
return _options == TBWildcardOptionsAny;
|
||||
}
|
||||
|
||||
- (BOOL)isEmpty {
|
||||
return self.isAny && self.string.length == 0;
|
||||
}
|
||||
|
||||
- (NSString *)description {
|
||||
if (flex_description) {
|
||||
return flex_description;
|
||||
}
|
||||
|
||||
switch (_options) {
|
||||
case TBWildcardOptionsNone:
|
||||
flex_description = _string;
|
||||
break;
|
||||
case TBWildcardOptionsAny:
|
||||
flex_description = @"*";
|
||||
break;
|
||||
default: {
|
||||
NSMutableString *desc = [NSMutableString new];
|
||||
if (_options & TBWildcardOptionsPrefix) {
|
||||
[desc appendString:@"*"];
|
||||
}
|
||||
[desc appendString:_string];
|
||||
if (_options & TBWildcardOptionsSuffix) {
|
||||
[desc appendString:@"*"];
|
||||
}
|
||||
flex_description = desc;
|
||||
}
|
||||
}
|
||||
|
||||
return flex_description;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash {
|
||||
return self.description.hash;
|
||||
}
|
||||
|
||||
- (BOOL)isEqual:(id)object {
|
||||
if ([object isKindOfClass:[FLEXSearchToken class]]) {
|
||||
FLEXSearchToken *token = object;
|
||||
return [_string isEqualToString:token->_string] && _options == token->_options;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
@end
|
Reference in New Issue
Block a user