Add equality and hash method for HTML Token classes
This commit is contained in:
@@ -26,9 +26,25 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - NSObject
|
||||
|
||||
- (BOOL)isEqual:(id)other
|
||||
{
|
||||
if ([other isKindOfClass:[self class]]) {
|
||||
HTMLCharacterToken *token = (HTMLCharacterToken *)other;
|
||||
return [self.characters isEqualToString:token.characters];
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash
|
||||
{
|
||||
return self.characters.hash;
|
||||
}
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: %p Characters=%@>", self.class, self, _characters];
|
||||
return [NSString stringWithFormat:@"<%@: %p Characters='%@'>", self.class, self, _characters];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -32,9 +32,25 @@
|
||||
[_data appendString:string];
|
||||
}
|
||||
|
||||
#pragma mark - NSObject
|
||||
|
||||
- (BOOL)isEqual:(id)other
|
||||
{
|
||||
if ([other isKindOfClass:[self class]]) {
|
||||
HTMLCommentToken *token = (HTMLCommentToken *)other;
|
||||
return [self.data isEqualToString:token.data];
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash
|
||||
{
|
||||
return self.data.hash;
|
||||
}
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: %p Data=%@>", self.class, self, _data];
|
||||
return [NSString stringWithFormat:@"<%@: %p Data='%@'>", self.class, self, _data];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
@implementation HTMLDOCTYPEToken
|
||||
@synthesize name = _name;
|
||||
|
||||
- (instancetype)initWithName:(NSString *)name
|
||||
- (instancetype)initWithName:(NSString *)name
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
@@ -33,9 +33,29 @@
|
||||
[_name appendString:string];
|
||||
}
|
||||
|
||||
#pragma mark - NSObject
|
||||
|
||||
- (BOOL)isEqual:(id)other
|
||||
{
|
||||
if ([other isKindOfClass:[self class]]) {
|
||||
HTMLDOCTYPEToken *token = (HTMLDOCTYPEToken *)other;
|
||||
return (
|
||||
[self.name isEqualToString:token.name] &&
|
||||
[self.publicIdentifier isEqualToString:token.publicIdentifier] &&
|
||||
[self.systemIdentifier isEqualToString:token.systemIdentifier]
|
||||
);
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash
|
||||
{
|
||||
return self.name.hash + self.publicIdentifier.hash + self.systemIdentifier.hash;
|
||||
}
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: %p Name=%@>", self.class, self, _name];
|
||||
return [NSString stringWithFormat:@"<%@: %p Name='%@' Public='%@' System='%@'>", self.class, self, _name, _publicIdentifier, _systemIdentifier];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: %p Reason=%@ Location=%lu>", self.class, self, _reason, _location];
|
||||
return [NSString stringWithFormat:@"<%@: %p Reason='%@' Location='%lu'>", self.class, self, _reason, _location];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -48,6 +48,25 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - NSObject
|
||||
|
||||
- (BOOL)isEqual:(id)other
|
||||
{
|
||||
if ([other isKindOfClass:[self class]]) {
|
||||
HTMLStartTagToken *token = (HTMLStartTagToken *)other;
|
||||
return (
|
||||
[self.tagName isEqualToString:token.tagName] &&
|
||||
[self.attributes isEqualToDictionary:token.attributes]
|
||||
);
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash
|
||||
{
|
||||
return self.tagName.hash + self.attributes.hash;
|
||||
}
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: %p TagName=%@>", self.class, self, self.tagName];
|
||||
@@ -66,6 +85,24 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - NSObject
|
||||
|
||||
- (BOOL)isEqual:(id)other
|
||||
{
|
||||
if ([other isKindOfClass:[self class]]) {
|
||||
HTMLStartTagToken *token = (HTMLStartTagToken *)other;
|
||||
return (
|
||||
[self.tagName isEqualToString:token.tagName]
|
||||
);
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash
|
||||
{
|
||||
return self.tagName.hash;
|
||||
}
|
||||
|
||||
- (NSString *)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: %p TagName=%@>", self.class, self, self.tagName];
|
||||
|
||||
Reference in New Issue
Block a user