/*
    NSObject(MAImplementation) - extra NSObject methods
    
    Copyright (C) 1995, Adam Fedor
    
*/

#ifdef NEXT_FOUNDATION
#import <foundation/NSString.h>
#import <foundation/NSException.h>
#else
#import <Foundation/NSString.h>
#import <Foundation/NSException.h>
#endif
#import "MathArray/NSObjectExtra.h"

#ifdef GNU_FOUNDATION
#define sel_getName	sel_get_name
#endif

/* This is a dummy function so that we can force the methods in this
   file to be loaded by non-NeXT linkers. */
const char *
MathArrayNSObjectExtra()
{
    return "MathArrayNSObjectExtra";
}


@implementation NSObject(MAImplementation)

/* Construction notice */
+ (void)maNotImplemented:(SEL)aSelector
{
    NSString *not;
    
    not = [NSString stringWithFormat:@"\n  Sorry, %s does not implement %s. \n  Contact Adam Fedor (fedor@boulder.colorado.edu) for more info.",
        	[[[self class] description] cString], sel_getName(_cmd)];
		
    NSAssert(0, not);  
}

- (void)maNotImplemented:(SEL)aSelector
{
    NSString *not;
    
    not = [NSString stringWithFormat:@"\n  Sorry, %s does not implement %s. \n  Contact Adam Fedor (fedor@boulder.colorado.edu) for more info.",
        	[[[self class] description] cString], sel_getName(_cmd)];
		
    NSAssert(0, not);  
}

- (void)maSubclassResponsibility:(SEL)aSelector
{
    NSAssert1(0, @"Invalid method call. %s is a subclass responsibility",
    	sel_getName(aSelector));  
}

@end
