/*! @header FTTransactionContext @abstract Module of FT @availability OS X, GNUstep @copyright 2004, 2005, 2006 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  -------------------------------------------------------------------------
  Modification history

  12.05.05 ola     initial version
  23.08.06 ola     license changed
  -------------------------------------------------------------------------
  
*/ #include #include @implementation FTTransactionContext - init { self = [super init]; self->contextData = [[NSMutableDictionary alloc] init]; return self; } - (void) dealloc { if( nil != self->contextData ) { [self->contextData release]; } [super dealloc]; } - addObject: (id) anObject forKey: (id) keyOfObject { if( nil != [self->contextData objectForKey: keyOfObject] ) { /* object already exists */ ECAlreadyExistsException *ex = [[ECAlreadyExistsException alloc] initWithResourceInformation: @"Specified key is already in use!" ]; [ex raise]; } [self->contextData setObject: anObject forKey: keyOfObject]; return self; } - objectForKey: (id) keyOfObject { return [self->contextData objectForKey: keyOfObject ]; } - removeObjectForKey: (id) keyOfObject { id objectToRemove = [self objectForKey: keyOfObject]; if( nil != objectToRemove ) { [self->contextData removeObjectForKey: keyOfObject]; } return objectToRemove; } @end