This is MailAddressList.m in view mode; [Download] [Up]
//---------------------------------------------------------------------------------------
// MailAddressList.m created by erik on Tue 05-May-1998
// 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: MailAddressList.m,v 1.1 1998/05/05 15:29:43 erik Exp $
//---------------------------------------------------------------------------------------
#import "Utilities.h"
#import "Message.h"
//-------------------------------------------------------------------------------------------
@implementation MailAddressList
//-------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------
// Factory
//-------------------------------------------------------------------------------------------
+ mailAddressListWithString:(NSString *)string;
{
return [[[self alloc] initWithString:string] autorelease];
}
+ mailAddressListWithAddresses:(NSArray *)array;
{
return [[[self alloc] initWithAddresses:array] autorelease];
}
//-------------------------------------------------------------------------------------------
// Initialiser
//-------------------------------------------------------------------------------------------
- init
{
[super init];
addresses = [[NSMutableArray allocWithZone:[self zone]] init];
return self;
}
- initWithString:(NSString *)stringList;
{
NSEnumerator *stringEnum;
NSString *string;
MailAddress *address;
[self init];
stringEnum = [[stringList componentsSeparatedByString:@","] objectEnumerator];
while((string = [stringEnum nextObject]) != nil)
{
address = [[[MailAddress allocWithZone:[self zone]] initWithString:string] autorelease];
[addresses addObject:address];
}
return self;
}
- initWithAddresses:(NSArray *)someAddresses;
{
[super init];
addresses = [[NSMutableArray allocWithZone:[self zone]] initWithArray:someAddresses];
return self;
}
//-------------------------------------------------------------------------------------------
// Representations
//-------------------------------------------------------------------------------------------
- (NSString *)stringRepresentation;
{
unsigned int i, n;
NSMutableArray *stringList;
if(stringRep == nil)
{
stringList = [NSMutableArray array];
for(i = 0, n = [addresses count]; i < n; i++)
[stringList addObject:[[addresses objectAtIndex:i] stringRepresentation]];
stringRep = [[stringList componentsJoinedByString:@", "] retain];
}
return stringRep;
}
- (NSData *)transferRepresentation;
{
unsigned int i, n;
NSMutableData *buffer;
NSData *delimiter;
delimiter = [@", " dataUsingEncoding:NSASCIIStringEncoding];
buffer = [NSMutableData data];
for(i = 0, n = [addresses count]; i < n; i++)
{
[buffer appendData:[[addresses objectAtIndex:i] transferRepresentation]];
if(i < n - 1)
[buffer appendData:delimiter];
}
return buffer;
}
//-------------------------------------------------------------------------------------------
// Attributes
//-------------------------------------------------------------------------------------------
- (void)addAddress:(MailAddress *)address;
{
[addresses addObject:address];
}
- (NSArray *)addresses;
{
return addresses;
}
//---------------------------------------------------------------------------------------
// NSObject Stuff
//---------------------------------------------------------------------------------------
- (void)dealloc
{
[addresses release];
[super dealloc];
}
//-------------------------------------------------------------------------------------------
@end
//-------------------------------------------------------------------------------------------
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.