//// PGTSFieldDescription.m// BaseTen//// Copyright (C) 2006 Marko Karppinen & Co. LLC.//// Before using this software, please review the available licensing options// by visiting http://www.karppinen.fi/baseten/licensing/ or by contacting// us at sales@karppinen.fi. Without an additional license, this software// may be distributed only in compliance with the GNU General Public License.////// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License, version 2.0,// as published by the Free Software Foundation.//// 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA//// $Id$//#import "PGTSFieldDescription.h"#import "PGTSResultSet.h"#import "PGTSConnection.h"#import "PGTSTableDescription.h"#import "PGTSFunctions.h"#import "PGTSDatabaseDescription.h"#import "PGTSAdditions.h"@implementationPGTSFieldDescriptionProxy-(PGTSTypeDescription*)type{return[[selfdatabase]typeWithOid:[(PGTSFieldDescription*)mDescriptiontypeOid]];}@end/** * Table field. */@implementationPGTSFieldDescription-(id)init{if((self=[superinit])){mIndex=0;}returnself;}-(void)dealloc{[mDefaultValuerelease];[superdealloc];}#if 0- (NSString *) description{ return [NSString stringWithFormat: @"%@ (%p) s: %@ t: %@ f: %@", [self class], self, [mTable schemaName], [mTable name], mName];}#endif-(void)setIndex:(int)anIndex{mIndex=anIndex;}-(NSString*)name{returnmName;}-(NSString*)qualifiedName{NSString*retval=nil;if(nil!=mName)retval=[NSStringstringWithFormat:@"\"%@\"",mName];returnretval;}-(int)index{returnmIndex;}-(id)defaultValue{//Potential thread-unsafety.return[[mDefaultValuecopy]autorelease];}-(Oid)typeOid{returnmTypeOid;}-(PGTSTypeDescription*)type{//This is only supposed to be called via the proxy.[selfdoesNotRecognizeSelector:_cmd];returnnil;}-(NSComparisonResult)indexCompare:(PGTSFieldDescription*)aField{NSComparisonResultresult=NSOrderedAscending;unsignedintanIndex=[aFieldindex];if(mIndex>anIndex)result=NSOrderedDescending;elseif(mIndex==anIndex)result=NSOrderedSame;returnresult;}-(BOOL)isNotNull{returnmIsNotNull;}-(Class)proxyClass{return[PGTSFieldDescriptionProxyclass];}-(void)setTypeOid:(Oid)anOid{mTypeOid=anOid;}-(void)setNotNull:(BOOL)aBool{mIsNotNull=aBool;}-(void)setDefaultValue:(id)anObject{if(mDefaultValue!=anObject){[mDefaultValuerelease];mDefaultValue=[anObjectretain];}}@end