diff options
author | stuconnolly <stuart02@gmail.com> | 2010-08-12 12:56:20 +0000 |
---|---|---|
committer | stuconnolly <stuart02@gmail.com> | 2010-08-12 12:56:20 +0000 |
commit | fc02f913371d522a025c47824fafeba8e3174da1 (patch) | |
tree | 086561fd418bf35139dda47d698d7923196a4f30 /Source/SPExporter.m | |
parent | 50f15c41936be3fb62384834bb3629e09018e67b (diff) | |
download | sequelpro-fc02f913371d522a025c47824fafeba8e3174da1.tar.gz sequelpro-fc02f913371d522a025c47824fafeba8e3174da1.tar.bz2 sequelpro-fc02f913371d522a025c47824fafeba8e3174da1.zip |
Various export enhancements and fixes, including:
- A new SPExportFile class, providing an abstract interface to the handling and creation of export files.
- Enables the centralisation of all file/file handle creation logic as well as better support for handling situations where files fail to be created, including files that already exist at the export location.
- New SPExportFileHandleStatus constants to support the reporting of file handle creation.
- Update SPExporter to use the new file class instead of directly using an instance of SPFileHandle.
- Add the necessary logic to deal with files that already exist on disk, by providing the user with 3 options: cancel the export, ignore the files in question or overwrite them. We might want to enhance this to make new files sequential in name to prevent overwriting. Fixes issue #742.
- New SPExportFileUtilities category, which centralises all the logic relating to writing export type headers as well as dealing with problems occurred during file/file handle creation.
- Improve feedback given on the export progress sheet during export initialisation.
- Tidy up and improve comments.
Diffstat (limited to 'Source/SPExporter.m')
-rw-r--r-- | Source/SPExporter.m | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Source/SPExporter.m b/Source/SPExporter.m index cd45ec50..e0e862fa 100644 --- a/Source/SPExporter.m +++ b/Source/SPExporter.m @@ -33,7 +33,7 @@ @synthesize exportUsingLowMemoryBlockingStreaming; @synthesize exportOutputCompressionFormat; @synthesize exportData; -@synthesize exportOutputFileHandle; +@synthesize exportOutputFile; @synthesize exportOutputEncoding; @synthesize exportMaxProgress; @@ -63,13 +63,13 @@ */ - (void)main { - @throw [NSException exceptionWithName:@"NSOperation main() Call" - reason:@"Cannot call NSOperation's main() method in SPExpoter, must be overriden in a subclass. See SPExporter.h" - userInfo:nil]; + [NSException raise:NSInternalInconsistencyException format:@"Cannot call NSOperation's main() method in SPExpoter, must be overriden in a subclass. See SPExporter.h"]; } /** * Returns whether or not file compression is in use. + * + * @return A BOOL indicating the use of compression */ - (BOOL)exportOutputCompressFile { @@ -78,15 +78,17 @@ /** * Sets whether or not the resulting output of this exporter should be compressed. + * + * @param compress A BOOL indicating the use of compression */ - (void)setExportOutputCompressFile:(BOOL)compress { // If the export file handle is nil or a compression format has not yet been set don't proceed - if ((!exportOutputFileHandle) || ([self exportOutputCompressionFormat] == SPNoCompression)) return; + if ((![exportOutputFile exportFileHandle]) || ([self exportOutputCompressionFormat] == SPNoCompression)) return; exportOutputCompressFile = compress; - [[self exportOutputFileHandle] setShouldWriteWithCompressionFormat:(compress) ? [self exportOutputCompressionFormat] : SPNoCompression]; + [[[self exportOutputFile] exportFileHandle] setShouldWriteWithCompressionFormat:(compress) ? [self exportOutputCompressionFormat] : SPNoCompression]; } /** @@ -96,7 +98,7 @@ { if (exportData) [exportData release], exportData = nil; if (connection) [connection release], connection = nil; - if (exportOutputFileHandle) [exportOutputFileHandle release], exportOutputFileHandle = nil; + if (exportOutputFile) [exportOutputFile release], exportOutputFile = nil; [super dealloc]; } |