This is MIMEContentDisposition.m in view mode; [Download] [Up]
//---------------------------------------------------------------------------------------
// MIMEContentDisposition.m created by erik on Sun 23-Mar-1997
// This code is part of the Alexandra Newsreader Project. For copyright details see
// GNU public license version 2 or above. No warranties implied. Use at own risk.
// More information can be found at <http://www.object-factory.com/Alexandra>.
// @(#)$Id: MIMEContentDisposition.m,v 1.2 1998/05/05 15:29:39 erik Exp $
//---------------------------------------------------------------------------------------
#import "Utilities.h"
#import "Message.h"
//---------------------------------------------------------------------------------------
// constants and cached values
//---------------------------------------------------------------------------------------
NSString *MIMEInlineContentDisposition = @"inline";
NSString *MIMEAttachmentContentDisposition = @"attachment";
static NSDictionary *stringUniqueingTable = nil;
//---------------------------------------------------------------------------------------
@implementation MIMEContentDisposition
//---------------------------------------------------------------------------------------
#ifndef LITTLE_FOUNDATION
+ (void)initialize
#else
+ initialize
#endif
{
if(stringUniqueingTable == nil)
{
NSArray *strings;
strings = [NSArray arrayWithObjects:MIMEInlineContentDisposition, MIMEAttachmentContentDisposition, nil];
stringUniqueingTable = [[NSDictionary dictionaryWithObjects:strings forKeys:strings] retain];
}
#ifndef LITTLE_FOUNDATION
#else
return self;
#endif
}
+ (NSString *)uniquedMIMEContentDisposition:(NSString *)string;
{
return [stringUniqueingTable objectForKey:string];
}
//---------------------------------------------------------------------------------------
// VALUE IMPLEMENTATION
//---------------------------------------------------------------------------------------
- (void)takeValueFromString:(NSString *)string;
{
NSString *value;
NSScanner *scanner;
TRACE_IN
scanner = [NSScanner scannerWithString:string];
if([scanner scanCharactersFromSet:[NSCharacterSet MIMETokenCharacterSet] intoString:&value] == NO)
[NSException raise:MIMEFormatException format:@"no disposition type in '%@'", string];
[self setDisposition:value];
}
- (void)appendValueToString:(NSMutableString *)string;
{
TRACE_IN
[string appendString:disposition];
}
//---------------------------------------------------------------------------------------
// BASIC ATTRIBUTE
//---------------------------------------------------------------------------------------
- (void)setDisposition:(NSString *)string;
{
NSString *uniquedString;
TRACE_IN
if(string == disposition)
return;
if([string rangeOfCharacterFromSet:[NSCharacterSet MIMENonTokenCharacterSet]].length != 0)
[NSException raise:NSInvalidArgumentException format:@"invalid char in '%@'", string];
string = [string lowercaseString];
[disposition release];
if((uniquedString = [MIMEContentDisposition uniquedMIMEContentDisposition:string]) != nil)
disposition = [uniquedString retain];
else
disposition = [string copyWithZone:[self zone]];
[self invalidateStringRep];
}
- (NSString *)disposition;
{
TRACE_IN
return disposition;
}
//---------------------------------------------------------------------------------------
// NSObject Stuff
//---------------------------------------------------------------------------------------
- (void)dealloc
{
TRACE_IN
[disposition release];
[super dealloc];
}
//---------------------------------------------------------------------------------------
@end
//---------------------------------------------------------------------------------------
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.