5 // Created by Marc Liyanage on Sun Mar 03 2002.
6 // Copyright (c) 2001 __MyCompanyName__. All rights reserved.
12 @implementation Workset
16 if (self = [super init]) {
17 xmlCode = [[NSString stringWithFormat:@"<text>\nPut your XML code here.\nPut your XSLT code under the XSLT tab.\nThen click on the Process button.\n</text>"] retain];
18 xsltCode = [[NSString stringWithFormat:@"<?xml version='1.0' encoding='iso-8859-1'?>\n\n<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n\n<xsl:output method='html' version='1.0' encoding='iso-8859-1' indent='no'/>\n\n</xsl:stylesheet>"] retain];
19 result = [[NSData alloc] init];
20 parameterSet = [[ParameterSet alloc] init];
25 // NSLog(@"Workset init");
30 - (id)initWithCoder:(NSCoder *)coder {
32 if (self = [super init]) {
33 [self setXmlCode:[coder decodeObject]];
34 [self setXsltCode:[coder decodeObject]];
35 [self setResult:[coder decodeObject]];
36 [self setParameterSet:[coder decodeObject]];
37 [self setXmlFilename:[coder decodeObject]];
38 [self setXsltFilename:[coder decodeObject]];
39 [self setResultFilename:[coder decodeObject]];
47 - (void)encodeWithCoder:(NSCoder *)coder {
49 [coder encodeObject:xmlCode];
50 [coder encodeObject:xsltCode];
51 [coder encodeObject:result];
52 [coder encodeObject:parameterSet];
53 [coder encodeObject:xmlFilename];
54 [coder encodeObject:xsltFilename];
55 [coder encodeObject:resultFilename];
65 [parameterSet release];
70 // NSLog(@"Workset dealloc");
74 - (NSString *)xmlCode {
78 - (void)setXmlCode:(NSString *)s {
89 - (NSString *)xmlFilename {
93 - (void)setXmlFilename:(NSString *)s {
96 [xmlFilename release];
99 [self updateXmlFileModificationDate];
102 - (BOOL)hasXmlFilename {
103 return xmlFilename != nil;
108 if (![self hasXmlFilename]) {
112 [[XMLUtils getDataWithEncodingFromString:[self xmlCode]] writeToFile:[self xmlFilename] atomically:NO];
113 [self updateXmlFileModificationDate];
119 - (BOOL)xmlModifiedExternally {
121 NSDictionary *fileAttr;
123 if (![self hasXmlFilename]) {
127 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xmlFilename] traverseLink:YES];
129 if (fileAttr == nil || xmlFileModificationDate == nil) {
133 if (![xmlFileModificationDate isEqualToDate:[fileAttr objectForKey:NSFileModificationDate]]) {
141 - (void)updateXmlFileModificationDate {
143 NSDictionary *fileAttr;
145 if ([self hasXmlFilename]) {
146 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xmlFilename] traverseLink:YES];
147 [xmlFileModificationDate release];
148 xmlFileModificationDate = [fileAttr objectForKey:NSFileModificationDate];
149 [xmlFileModificationDate retain];
150 // NSLog(@"xml file mod date: %@", xmlFileModificationDate);
155 - (void)reloadXmlFromFile {
157 [self setXmlCode:[XMLUtils getStringWithEncodingFromFile:[self xmlFilename]]];
158 [self updateXmlFileModificationDate];
166 - (int)resultEncoding {
167 return resultEncoding;
170 - (void)setResultEncoding:(NSStringEncoding)newencoding {
171 resultEncoding = newencoding;
178 - (NSString *)xsltFilename {
182 - (void)setXsltFilename:(NSString *)s {
185 [xsltFilename release];
188 [self updateXsltFileModificationDate];
192 - (BOOL)hasXsltFilename {
193 return xsltFilename != nil;
198 if (![self hasXsltFilename]) {
202 [[XMLUtils getDataWithEncodingFromString:[self xsltCode]] writeToFile:[self xsltFilename] atomically:NO];
203 [self updateXsltFileModificationDate];
209 - (BOOL)xsltModifiedExternally {
211 NSDictionary *fileAttr;
213 if (![self hasXsltFilename]) {
217 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xsltFilename] traverseLink:YES];
219 if (fileAttr == nil || xsltFileModificationDate == nil) {
223 if (![xsltFileModificationDate isEqualToDate:[fileAttr objectForKey:NSFileModificationDate]]) {
231 - (void)updateXsltFileModificationDate {
233 NSDictionary *fileAttr;
235 if ([self hasXsltFilename]) {
236 fileAttr = [[NSFileManager defaultManager] fileAttributesAtPath:[self xsltFilename] traverseLink:YES];
237 [xsltFileModificationDate release];
238 xsltFileModificationDate = [fileAttr objectForKey:NSFileModificationDate];
239 [xsltFileModificationDate retain];
240 // NSLog(@"xslt file mod date: %@", xsltFileModificationDate);
244 - (void)reloadXsltFromFile {
246 [self setXsltCode:[XMLUtils getStringWithEncodingFromFile:[self xsltFilename]]];
247 [self updateXsltFileModificationDate];
255 - (NSString *)resultFilename {
256 return resultFilename;
259 - (void)setResultFilename:(NSString *)s {
261 [resultFilename release];
265 - (BOOL)hasResultFilename {
266 return resultFilename != nil;
272 - (NSString *)xsltCode {
276 - (void)setXsltCode:(NSString *)s {
286 - (void)setResult:(NSData *)s {
293 - (NSString *)stringResult {
294 return [[[NSString alloc] initWithData:result encoding:[self resultEncoding]] autorelease];
299 - (ParameterSet *)parameterSet {
303 - (void)setParameterSet:(ParameterSet *)newParams {
305 [parameterSet release];
306 parameterSet = newParams;
310 return ([xmlCode length] > 0);
313 - (BOOL)hasXsltCode {
314 return ([xsltCode length] > 0);
318 return ([result length] > 0);
321 - (BOOL)hasParameters {
322 return ([parameterSet count] > 0);