sogo/SOPE/GDLContentStore/GCSFolder.h

169 lines
4.7 KiB
Objective-C

/*
Copyright (C) 2004-2007 SKYRIX Software AG
Copyright (C) 2007 Helge Hess
This file is part of OpenGroupware.org.
OGo is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
OGo is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public
License along with OGo; see the file COPYING. If not, write to the
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
#ifndef __GDLContentStore_GCSFolder_H__
#define __GDLContentStore_GCSFolder_H__
/*
GCSFolder
TODO: document
Fixed Quick-Table SQL fields:
- "c_name" (name of the file in the folder)
Fixed BLOB-Table SQL fields:
- "c_name" (name of the file in the folder)
- "c_content" (content of the file in the folder)
- "c_version" (update revision of the file in the folder)
*/
@class NSArray;
@class NSDictionary;
@class NSException;
@class NSMutableArray;
@class NSMutableString;
@class NSNumber;
@class NSString;
@class NSURL;
@class EOAdaptor;
@class EOAdaptorChannel;
@class EOAttribute;
@class EOFetchSpecification;
@class EOKeyValueQualifier;
@class EOQualifier;
@class GCSChannelManager;
@class GCSFolderManager;
@class GCSFolderType;
@interface GCSFolder : NSObject
{
GCSFolderManager *folderManager;
GCSFolderType *folderInfo;
NSNumber *folderId;
NSString *folderName;
NSString *path;
NSURL *location;
NSURL *quickLocation;
NSURL *aclLocation;
NSString *folderTypeName;
NSMutableArray *quickFieldNames, *contentFieldNames;
struct {
int requiresFolderSelect:1;
int sameTableForQuick:1;
int reserved:30;
} ofFlags;
}
- (id) initWithPath: (NSString *) _path
primaryKey: (id) _folderId
folderTypeName: (NSString *) _ftname
folderType: (GCSFolderType *) _ftype
location: (NSURL *) _loc
quickLocation: (NSURL *) _qloc
aclLocation: (NSURL *) _aloc
folderManager: (GCSFolderManager *) _fm;
/* accessors */
- (NSNumber *) folderId;
- (NSString *) folderName;
- (NSString *) path;
- (NSURL *) location;
- (NSURL *) quickLocation;
- (NSURL *) aclLocation;
- (NSString *) folderTypeName;
- (NSString *) storeTableName;
- (NSString *) quickTableName;
- (NSString *) aclTableName;
- (BOOL) isQuickInfoStoredInContentTable;
/* connection */
- (EOAdaptorChannel *) acquireStoreChannel;
- (EOAdaptorChannel *) acquireQuickChannel;
- (EOAdaptorChannel *) acquireAclChannel;
- (void) releaseChannel: (EOAdaptorChannel *) _channel;
- (void) releaseChannel: (EOAdaptorChannel *) _channel
immediately: (BOOL) _immediately;
- (BOOL) canConnectStore;
- (BOOL) canConnectQuick;
/* operations */
- (NSArray *) subFolderNames;
- (NSArray *) allSubFolderNames;
- (NSDictionary *) recordOfEntryWithName: (NSString *) name;
- (NSException *) writeContent: (NSString *) _content
fromComponent: (id) theComponent
container: (id) theContainer
toName: (NSString *) _name
baseVersion: (unsigned int *) _baseVersion;
- (NSException *) deleteContentWithName: (NSString *) _name;
- (NSException *) deleteAllContent;
- (NSException *) purgeDeletedRecordsBefore: (unsigned int) days;
- (NSException *) touchContentWithName: (NSString *) _name;
- (NSException *) deleteFolder;
- (NSException *) updateQuickFields: (NSDictionary *) _fields
whereColumn: (NSString *) _colname
isEqualTo: (id) _value;
- (NSArray *) fetchFields: (NSArray *) _flds
fetchSpecification: (EOFetchSpecification *) _fs;
- (NSArray *) fetchFields: (NSArray *) fields
fetchSpecification: (EOFetchSpecification *) spec
ignoreDeleted: (BOOL) ignoreDeleted;
- (NSArray *) fetchFields: (NSArray *) _flds
matchingQualifier: (EOQualifier *) _q;
- (NSArray *) fetchAclMatchingQualifier: (EOQualifier *) _q;
- (void) deleteAclMatchingQualifier: (EOQualifier *) _q;
- (void) deleteAclWithSpecification: (EOFetchSpecification *) _fs;
- (unsigned int) recordsCountByExcludingDeleted: (BOOL) includeDeleted;
- (unsigned int) recordsCountDeletedBefore: (unsigned int) days;
- (NSCalendarDate *) lastModificationDate;
/* helpers */
- (EOAttribute *) _attributeForColumn: (NSString *) _field;
- (void) _findQualifiers: (id) qualifier
withAdaptor: (EOAdaptor *) adaptor;
- (void) _formatQualifierValue: (EOKeyValueQualifier *) qualifier
withAdaptor: (EOAdaptor *) adaptor;
@end
#endif /* __GDLContentStore_GCSFolder_H__ */