/* EOEntity+GSDoc.m Copyright (C) 2000-2002,2003,2004,2005 Free Software Foundation, Inc. Author: Manuel Guesdon Date: August 2000 $Revision$ $Date$ This file is part of the GNUstep Database Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ #include "config.h" RCS_ID("$Id$") #ifdef GNUSTEP #include #else #include #endif #ifndef GNUSTEP #include #endif #include #include #include "NSArray+GSDoc.h" #include "NSDictionary+GSDoc.h" #include "EOModel+GSDoc.h" #include "EOEntity+GSDoc.h" /* NSString* externalQuery; NSArray* attributesNamesUsedForInsert; EOQualifier* qualifier; NSArray* attributesUsedForInsert; // cache from classProperties NSArray* attributesUsedForFetch; // cache from classProperties NSArray* relationsUsedForFetch; // cache from classProperties */ @implementation EOEntity (GSDoc) - (NSString *)gsdocContentWithIdPtr: (int *)xmlIdPtr { NSAutoreleasePool *arp = [NSAutoreleasePool new]; NSString *content = [NSString string]; NSLog(@"Start: %@: %@", [self class], [self name]); content = [content stringByAppendingFormat: @"\n", (xmlIdPtr ? [NSString stringWithFormat: @" debugId=\"%d\"", (*xmlIdPtr)++] : @""), ([self name] ? [NSString stringWithFormat: @" name=\"%@\"", [self name]] : @""), ([self externalName] ? [NSString stringWithFormat: @" externalName=\"%@\"", [self externalName]] : @""), ([self className] ? [NSString stringWithFormat: @" className=\"%@\"", [self className]] : @""), ([[self model] name] ? [NSString stringWithFormat: @" modelName=\"%@\"", [[self model] name]] : @""), ([self isReadOnly] ? @"isReadOnly=\"YES\"" : @"")]; if ([self attributes]) content = [content stringByAppendingString: [[self attributes] gsdocContentWithTagName: nil idPtr: xmlIdPtr]]; if ([self attributesUsedForLocking]) content = [content stringByAppendingString: [[self attributesUsedForLocking] gsdocContentWithTagName: @"EOAttributesUsedForLocking" elementsTagName: @"EOAttributeRef" idPtr: xmlIdPtr]]; if ([self classProperties]) content = [content stringByAppendingString: [[self classProperties] gsdocContentWithTagName: @"EOClassProperties" elementsTagName: @"EOAttributeRef" idPtr: xmlIdPtr]]; if ([self primaryKeyAttributes]) content = [content stringByAppendingString: [[self primaryKeyAttributes] gsdocContentWithTagName: @"EOPrimaryKeyAttributes" elementsTagName: @"EOAttributeRef" idPtr: xmlIdPtr]]; if ([self relationships]) content = [content stringByAppendingString: [[self relationships] gsdocContentWithTagName: nil idPtr: xmlIdPtr]]; if ([[self userInfo] count]) content = [content stringByAppendingString: [[self userInfo] gsdocContentWithTagName: @"EOUserDictionary" idPtr: xmlIdPtr]]; if ([self docComment]) content = [content stringByAppendingFormat: @"%@\n", [self docComment]]; content = [content stringByAppendingString: @"\n"]; NSLog(@"Stop: %@: %@", [self class], [self name]); RETAIN(content); DESTROY(arp); return AUTORELEASE(content); } @end