mirror of
https://github.com/danog/Telegram.git
synced 2024-12-04 10:27:46 +01:00
74 lines
1.7 KiB
Objective-C
Executable File
74 lines
1.7 KiB
Objective-C
Executable File
//
|
|
// GDFileManagerAlias.m
|
|
// GDFileManagerExample
|
|
//
|
|
// Created by Graham Dennis on 21/08/13.
|
|
// Copyright (c) 2013 Graham Dennis. All rights reserved.
|
|
//
|
|
|
|
#import "GDFileManagerAlias.h"
|
|
#import "GDFileManager.h"
|
|
#import "GDDispatchUtilities.h"
|
|
|
|
@interface GDFileManagerAlias ()
|
|
|
|
@property (nonatomic, readonly, copy) NSArray *metadataHeirarchy;
|
|
|
|
@end
|
|
|
|
@implementation GDFileManagerAlias
|
|
|
|
- (id)init
|
|
{
|
|
[self doesNotRecognizeSelector:_cmd];
|
|
return nil;
|
|
}
|
|
|
|
- (instancetype)initWithMetadataHeirarchy:(NSArray *)metadataHeirarchy
|
|
{
|
|
if ((self = [super init])) {
|
|
_metadataHeirarchy = [metadataHeirarchy copy];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (NSURL *)originalURL
|
|
{
|
|
return self.originalMetadata.url;
|
|
}
|
|
|
|
- (GDURLMetadata *)originalMetadata
|
|
{
|
|
return [self.metadataHeirarchy lastObject];
|
|
}
|
|
|
|
- (NSString *)originalFilenamePath
|
|
{
|
|
NSMutableArray *pathComponents = [NSMutableArray arrayWithCapacity:[self.metadataHeirarchy count]+1];
|
|
// first / as this is an absolute path
|
|
for (GDURLMetadata *pathComponentMetadata in self.metadataHeirarchy) {
|
|
[pathComponents addObject:pathComponentMetadata.filename];
|
|
}
|
|
if ([pathComponents count] && ![[pathComponents objectAtIndex:0] isEqualToString:@"/"]) {
|
|
[pathComponents insertObject:@"/" atIndex:0];
|
|
}
|
|
return [NSString pathWithComponents:pathComponents];
|
|
}
|
|
|
|
#pragma mark - NSCoding
|
|
|
|
static NSString *const kMetadataHeirarchy = @"metadataHeirarchy";
|
|
|
|
- (id)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
NSArray *metadataHeirarchy = [aDecoder decodeObjectForKey:kMetadataHeirarchy];
|
|
return [self initWithMetadataHeirarchy:metadataHeirarchy];
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
[aCoder encodeObject:self.metadataHeirarchy forKey:kMetadataHeirarchy];
|
|
}
|
|
|
|
@end
|