static NSImage *sharedIcon = nil;
@implementation PithosSubdirNode
-@synthesize pithosObject, versions;
+@synthesize pithosObject, versions, applyMetadataObjectRequest, refreshMetadataObjectRequest, refreshVersionsObjectRequest;
@synthesize isPublic, translatedModifiedBy, translatedPermissions;
+ (void)initialize {
#pragma mark -
#pragma mark Object Lifecycle
-- (id)initWithPithos:(ASIPithos *)aPithos
- pithosContainer:(ASIPithosContainer *)aPithosContainer
- pithosObject:(ASIPithosObject *)aPithosObject {
- if ((self = [super init])) {
- self.pithos = aPithos;
+- (id)initWithPithosAccountManager:(PithosAccount *)aPithosAccountManager
+ andPithos:(ASIPithos *)aPithos
+ pithosContainer:(ASIPithosContainer *)aPithosContainer
+ pithosObject:(ASIPithosObject *)aPithosObject {
+ if ((self = [super initWithPithosAccountManager:aPithosAccountManager])) {
+ pithos = aPithos;
+ refreshParent = NO;
self.pithosContainer = aPithosContainer;
self.pithosObject = aPithosObject;
- refreshParent = NO;
}
return self;
}
if ((responseStatusCode != 201) && (responseStatusCode != 202))
[PithosUtilities unexpectedResponseStatusAlertWithRequest:applyMetadataObjectRequest];
@synchronized(self) {
- applyMetadataObjectRequest = nil;
+ self.applyMetadataObjectRequest = nil;
}
if ((responseStatusCode == 201) || (responseStatusCode == 202))
[self refreshInfo];
refreshParent = NO;
}
@synchronized(self) {
- refreshMetadataObjectRequest = nil;
+ self.refreshMetadataObjectRequest = nil;
}
} else if ([request isEqualTo:refreshVersionsObjectRequest]) {
[[pithosNodeInfoController window] makeFirstResponder:nil];
self.versions = [refreshVersionsObjectRequest versions];
@synchronized(self) {
- refreshVersionsObjectRequest = nil;
+ self.refreshVersionsObjectRequest = nil;
}
}
}
[(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
if ([request isEqualTo:applyMetadataObjectRequest]) {
@synchronized(self) {
- applyMetadataObjectRequest = newRequest;
+ self.applyMetadataObjectRequest = newRequest;
}
} else if ([request isEqualTo:refreshMetadataObjectRequest]) {
@synchronized(self) {
- refreshMetadataObjectRequest = newRequest;
+ self.refreshMetadataObjectRequest = newRequest;
}
} else if ([request isEqualTo:refreshVersionsObjectRequest]) {
@synchronized(self) {
- refreshVersionsObjectRequest = newRequest;
+ self.refreshVersionsObjectRequest = newRequest;
}
}
[[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
if ([request isEqualTo:applyMetadataObjectRequest]) {
[PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataObjectRequest];
@synchronized(self) {
- applyMetadataObjectRequest = nil;
+ self.applyMetadataObjectRequest = nil;
}
} else if ([request isEqualTo:refreshMetadataObjectRequest]) {
[PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataObjectRequest];
@synchronized(self) {
- refreshMetadataObjectRequest = nil;
+ self.refreshMetadataObjectRequest = nil;
}
} else if ([request isEqualTo:refreshVersionsObjectRequest]) {
[PithosUtilities httpRequestErrorAlertWithRequest:refreshVersionsObjectRequest];
@synchronized(self) {
- refreshVersionsObjectRequest = nil;
+ self.refreshVersionsObjectRequest = nil;
}
}
}
}
pithosObject.permissions = permissions;
- applyMetadataObjectRequest = [ASIPithosObjectRequest writeObjectDataRequestWithPithos:pithos
- containerName:pithosContainer.name
- objectName:prefix
- eTag:nil
- contentType:@"application/directory"
- contentEncoding:pithosObject.contentEncoding
- contentDisposition:pithosObject.contentDisposition
- manifest:pithosObject.manifest
- sharing:(pithosObject.sharing ? pithosObject.sharing : @"")
- isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
- metadata:pithosObject.metadata
- data:[NSData data]];
+ self.applyMetadataObjectRequest = [ASIPithosObjectRequest writeObjectDataRequestWithPithos:pithos
+ containerName:pithosContainer.name
+ objectName:prefix
+ eTag:nil
+ contentType:@"application/directory"
+ contentEncoding:pithosObject.contentEncoding
+ contentDisposition:pithosObject.contentDisposition
+ manifest:pithosObject.manifest
+ sharing:(pithosObject.sharing ? pithosObject.sharing : @"")
+ isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
+ metadata:pithosObject.metadata
+ data:[NSData data]];
pithosObject.subdir = NO;
applyMetadataObjectRequest.delegate = self;
applyMetadataObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
} else {
[[pithosNodeInfoController window] makeFirstResponder:nil];
if (sharingAccount) {
- applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos
- containerName:pithosContainer.name
- objectName:pithosObject.name
- contentEncoding:nil
- contentDisposition:nil
- manifest:nil
- sharing:nil
- isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
- metadata:pithosObject.metadata
- update:NO];
+ self.applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos
+ containerName:pithosContainer.name
+ objectName:pithosObject.name
+ contentEncoding:nil
+ contentDisposition:nil
+ manifest:nil
+ sharing:nil
+ isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
+ metadata:pithosObject.metadata
+ update:NO];
[applyMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
} else {
NSMutableArray *permissions = [NSMutableArray array];
}
pithosObject.permissions = permissions;
- applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos
- containerName:pithosContainer.name
- objectName:pithosObject.name
- contentEncoding:pithosObject.contentEncoding
- contentDisposition:pithosObject.contentDisposition
- manifest:pithosObject.manifest
- sharing:(pithosObject.sharing ? pithosObject.sharing : @"")
- isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
- metadata:pithosObject.metadata
- update:NO];
+ self.applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos
+ containerName:pithosContainer.name
+ objectName:pithosObject.name
+ contentEncoding:pithosObject.contentEncoding
+ contentDisposition:pithosObject.contentDisposition
+ manifest:pithosObject.manifest
+ sharing:(pithosObject.sharing ? pithosObject.sharing : @"")
+ isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
+ metadata:pithosObject.metadata
+ update:NO];
}
applyMetadataObjectRequest.delegate = self;
applyMetadataObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
self.pithosObject = [ASIPithosObject subdirWithName:pithosObject.name];
return;
} else if (refreshMetadataObjectRequest == nil) {
- refreshMetadataObjectRequest = [ASIPithosObjectRequest objectMetadataRequestWithPithos:pithos
- containerName:pithosContainer.name
- objectName:prefix];
+ self.refreshMetadataObjectRequest = [ASIPithosObjectRequest objectMetadataRequestWithPithos:pithos
+ containerName:pithosContainer.name
+ objectName:prefix];
if (sharingAccount)
[refreshMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
refreshMetadataObjectRequest.delegate = self;
if (pithosObject.subdir) {
return;
} else if (refreshVersionsObjectRequest == nil) {
- refreshVersionsObjectRequest = [ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos
- containerName:pithosContainer.name
- objectName:pithosObject.name];
+ self.refreshVersionsObjectRequest = [ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos
+ containerName:pithosContainer.name
+ objectName:pithosObject.name];
if (sharingAccount)
[refreshVersionsObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
refreshVersionsObjectRequest.delegate = self;