@@ -24,10 +24,11 @@ #import "OFDate.h" #import "autorelease.h" #import "macros.h" +#import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" @implementation OFZIPArchiveEntry - (instancetype)OF_initWithFile: (OFFile*)file { @@ -219,6 +220,23 @@ - (uint32_t)OF_localFileHeaderOffset { return _localFileHeaderOffset; } + +- (of_comparison_result_t)compare: (id)object +{ + OFZIPArchiveEntry *entry; + + if (![object isKindOfClass: [OFZIPArchiveEntry class]]) + @throw [OFInvalidArgumentException exception]; + + entry = object; + + if (_localFileHeaderOffset > entry->_localFileHeaderOffset) + return OF_ORDERED_DESCENDING; + if (_localFileHeaderOffset < entry->_localFileHeaderOffset) + return OF_ORDERED_ASCENDING; + + return OF_ORDERED_SAME; +} @end