00001
00002
00003
00004
00005
00006
00007
00008 #import <Foundation/Foundation.h>
00009
00013 @interface HFByteRangeAttributeArray : NSObject <NSMutableCopying> {
00014 }
00015
00017 - (NSSet *)attributesAtIndex:(unsigned long long)index length:(unsigned long long *)length;
00018
00020 - (NSSet *)attributesInRange:(HFRange)range;
00021
00023 - (HFRange)rangeOfAttribute:(NSString *)attribute;
00024
00026 - (void)addAttribute:(NSString *)attributeName range:(HFRange)range;
00027
00029 - (void)removeAttribute:(NSString *)attributeName range:(HFRange)range;
00030
00032 - (void)removeAttribute:(NSString *)attributeName;
00033
00035 - (void)removeAttributes:(NSSet *)attributeName;
00036
00038 - (BOOL)isEmpty;
00039
00041 - (NSEnumerator *)attributeEnumerator;
00042
00044 - (void)byteRange:(HFRange)srcRange wasReplacedByBytesOfLength:(unsigned long long)replacementLength;
00045
00047 - (void)transferAttributesFromAttributeArray:(HFByteRangeAttributeArray *)array range:(HFRange)range baseOffset:(unsigned long long)baseOffset validator:(BOOL (^)(NSString *))allowTransfer;
00048
00049 @end
00050
00051 #ifndef DOXYGEN_ONLY
00052 @interface HFNaiveByteRangeAttributeArray : HFByteRangeAttributeArray {
00053 NSMutableArray *attributeRuns;
00054 }
00055 @end
00056
00057 @class HFAnnotatedTree;
00058 @interface HFAnnotatedTreeByteRangeAttributeArray : HFByteRangeAttributeArray {
00059 HFAnnotatedTree *atree;
00060 NSMutableDictionary *attributesToNodes;
00061 }
00062 @end
00063 #endif