/* Container.m Class definition. Copyright (C) 1995 David Flater. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "cheezmud.h" @implementation Container + new { self = [super new]; contents = [OrdCltn new]; capacity = 5; return self; } - empty: who { char temp[80]; sprintf (temp, "%s contains nothing.", capitalize ([self def])); [who echo: temp]; return self; } - nonempty: who { char temp[80]; sprintf (temp, "%s contains:", capitalize ([self def])); [who echo: temp]; return self; } - free { /* Any contents not removed are lost. */ [contents elementsPerform: @selector(logout)]; /* 1996-04-15 New libobjects demands that I use dealloc instead */ /* of free. */ /* [contents free]; */ /* NSDeallocateObject (contents); */ [contents free]; return [super free]; } - add: something { [contents add: something]; return self; } - remove: something { [contents remove: something]; return self; } - (int) capacity { return capacity; } - listcontents: who { int i,m; if ([contents isEmpty]) [self empty: who]; else { [self nonempty: who]; for(i=0,m=[contents size];i<m;i++) { id whatever = [contents at:i]; [who echo: capitalize ([whatever indef])]; } } return self; } - contents { return contents; } - find: (char *) what: (int) number { return generic_find (contents, what, number); } @end