aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPExporter.m
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2010-08-12 12:56:20 +0000
committerstuconnolly <stuart02@gmail.com>2010-08-12 12:56:20 +0000
commitfc02f913371d522a025c47824fafeba8e3174da1 (patch)
tree086561fd418bf35139dda47d698d7923196a4f30 /Source/SPExporter.m
parent50f15c41936be3fb62384834bb3629e09018e67b (diff)
downloadsequelpro-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.m16
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];
}