// PithosObjectNode.m
// pithos-macos
//
-// Copyright 2011-2012 GRNET S.A. All rights reserved.
+// Copyright 2011-2013 GRNET S.A. All rights reserved.
//
// Redistribution and use in source and binary forms, with or
// without modification, are permitted provided that the following
#import "PithosObjectNodeInfoController.h"
@implementation PithosObjectNode
-@synthesize pithos, pithosContainer, pithosObject, versions, applyMetadataObjectRequest, refreshMetadataObjectRequest, refreshVersionsObjectRequest;
+@synthesize pithosContainer, pithosObject, versions, applyMetadataObjectRequest, refreshMetadataObjectRequest, refreshVersionsObjectRequest;
@synthesize isPublic, translatedModifiedBy, translatedPermissions;
#pragma mark -
#pragma mark Object Lifecycle
- (id)initWithPithosAccountManager:(PithosAccount *)aPithosAccountManager
- andPithos:(ASIPithos *)aPithos
pithosContainer:(ASIPithosContainer *)aPithosContainer
pithosObject:(ASIPithosObject *)aPithosObject {
if ((self = [super initWithPithosAccountManager:aPithosAccountManager])) {
- pithos = aPithos;
isLeafItem = YES;
self.pithosContainer = aPithosContainer;
self.pithosObject = aPithosObject;
#pragma mark -
#pragma mark Properties
-- (void)setPithos:(ASIPithos *)aPithos {
- if (aPithos && ![aPithos isEqualTo:pithos]) {
- pithos = aPithos;
- url = nil;
- }
-}
-
- (NSString *)url {
- if (url == nil)
- url = [[NSString alloc] initWithFormat:@"object %@/%@/%@%@",
- (sharingAccount ? [pithos storageURLWithAuthUser:sharingAccount] : pithos.storageURL),
- pithosContainer.name,
- pithosObject.name,
- (shared ? @"?shared" : @"")];
- return url;
+ return [NSString stringWithFormat:@"@object@%@/%@/%@%@",
+ (sharingAccount ? sharingAccount : pithosAccountManager.pithos.authUser),
+ pithosContainer.name,
+ pithosObject.name,
+ (shared ? @"?shared" : @"")];
}
- (NSArray *)children {
if (applyMetadataObjectRequest == nil) {
[[pithosNodeInfoController window] makeFirstResponder:nil];
if (sharingAccount) {
- self.applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos
+ self.applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithosAccountManager.pithos
containerName:pithosContainer.name
objectName:pithosObject.name
contentEncoding:nil
isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse)
metadata:pithosObject.metadata
update:NO];
- [applyMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
+ [applyMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithosAccountManager.pithos];
} else {
NSMutableArray *permissions = [NSMutableArray array];
if (translatedPermissions.count) {
}
pithosObject.permissions = permissions;
- self.applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos
+ self.applyMetadataObjectRequest = [ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithosAccountManager.pithos
containerName:pithosContainer.name
objectName:pithosObject.name
contentEncoding:pithosObject.contentEncoding
- (void)refreshInfo {
@synchronized(self) {
if (refreshMetadataObjectRequest == nil) {
- self.refreshMetadataObjectRequest = [ASIPithosObjectRequest objectMetadataRequestWithPithos:pithos
+ self.refreshMetadataObjectRequest = [ASIPithosObjectRequest objectMetadataRequestWithPithos:pithosAccountManager.pithos
containerName:pithosContainer.name
objectName:pithosObject.name];
if (sharingAccount)
- [refreshMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
+ [refreshMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithosAccountManager.pithos];
refreshMetadataObjectRequest.delegate = self;
refreshMetadataObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
refreshMetadataObjectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
- (void)refreshVersions {
@synchronized(self) {
if (refreshVersionsObjectRequest == nil) {
- self.refreshVersionsObjectRequest = [ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos
+ self.refreshVersionsObjectRequest = [ASIPithosObjectRequest objectVersionsRequestWithPithos:pithosAccountManager.pithos
containerName:pithosContainer.name
objectName:pithosObject.name];
if (sharingAccount)
- [refreshVersionsObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
+ [refreshVersionsObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithosAccountManager.pithos];
refreshVersionsObjectRequest.delegate = self;
refreshVersionsObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
refreshVersionsObjectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);