Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 80 lines (71 sloc) 2.075 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
//
// TwitterTextEntity.m
//
// Copyright 2012 Twitter, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//

#import "TwitterTextEntity.h"

@implementation TwitterTextEntity

@synthesize type;
@synthesize range;

- (id)initWithType:(TwitterTextEntityType)aType range:(NSRange)aRange
{
    self = [super init];
    if (self) {
        type = aType;
        range = aRange;
    }
    return self;
}

+ (id)entityWithType:(TwitterTextEntityType)type range:(NSRange)range
{
    TwitterTextEntity *entity = [[self alloc] initWithType:type range:range];
#if !__has_feature(objc_arc)
    [entity autorelease];
#endif
    return entity;
}

- (NSComparisonResult)compare:(TwitterTextEntity*)right
{
    NSInteger leftLocation = range.location;
    NSInteger leftLength = range.length;
    NSRange rightRange = right.range;
    NSInteger rightLocation = rightRange.location;
    NSInteger rightLength = rightRange.length;
    
    if (leftLocation < rightLocation) {
        return NSOrderedAscending;
    } else if (leftLocation > rightLocation) {
        return NSOrderedDescending;
    } else if (leftLength < rightLength) {
        return NSOrderedAscending;
    } else if (leftLength > rightLength) {
        return NSOrderedDescending;
    } else {
        return NSOrderedSame;
    }
}

- (NSString*)description
{
    NSString *typeString = nil;
    switch (type) {
        case TwitterTextEntityURL:
            typeString = @"URL";
            break;
        case TwitterTextEntityScreenName:
            typeString = @"ScreenName";
            break;
        case TwitterTextEntityHashtag:
            typeString = @"Hashtag";
            break;
        case TwitterTextEntityListName:
            typeString = @"ListName";
            break;
    }
    return [NSString stringWithFormat:@"<%@: %@ %@>", NSStringFromClass([self class]), typeString, NSStringFromRange(range)];
}

@end
Something went wrong with that request. Please try again.