diff options
Diffstat (limited to 'Frameworks/MCPKit/MCPEntrepriseKit/MCPAttribute.h')
-rw-r--r-- | Frameworks/MCPKit/MCPEntrepriseKit/MCPAttribute.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/Frameworks/MCPKit/MCPEntrepriseKit/MCPAttribute.h b/Frameworks/MCPKit/MCPEntrepriseKit/MCPAttribute.h new file mode 100644 index 00000000..1a474346 --- /dev/null +++ b/Frameworks/MCPKit/MCPEntrepriseKit/MCPAttribute.h @@ -0,0 +1,106 @@ +// +// $Id: MCPAttribute.h 545 2009-04-10 14:49:45Z stuart02 $ +// +// MCPAttribute.h +// MCPKit +// +// Created by Serge Cohen (serge.cohen@m4x.org) on 09/08/04. +// Copyright (c) 2004 Serge Cohen. All rights reserved. +// +// Forked by the Sequel Pro team (sequelpro.com), April 2009 +// +// 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://mysql-cocoa.sourceforge.net/> +// More info at <http://code.google.com/p/sequel-pro/> + +#import <Foundation/Foundation.h> + +@class MCPModel; +@class MCPClassDescription; +@class MCPRelation; +@class MCPJoin; + +@interface MCPAttribute : NSObject < NSCoding > +{ +@protected + MCPClassDescription *classDescription; // ClassDescription of which the attribute is attribute + NSString *name; // Name of the attribute (Obj-C side) + Class valueClass; // Class used by the attribute (or NULL if the internal type is not an object) + NSString *internalType; // Name of the class, or type used for the class definition + NSString *externalName; // Name of the corresponding column in the DB + NSString *externalType; // Type used to store the attribute (in the DB) + unsigned int width; // Width (for storing by the DB) + BOOL allowsNull; // Attribute can be null + BOOL autoGenerated; // Attribute is auto generated by the DB + BOOL isPartOfKey; // Attribute is part of theprimary key of the class description + BOOL isPartOfIdentity; // Attribute is part of the idclass description of the class description + BOOL hasAccessor; // Does this attribute have an accessor + id defaultValue; // Default value of the attribute + NSMutableArray *joins; // An array of the joins using this attribute +} + +#pragma mark Class methods ++ (void) initialize; + +#pragma mark Life cycle +- (id) initForClassDescription:(MCPClassDescription *) iClassDescription withName:(NSString *) iName; +- (void) dealloc; + +#pragma mark NSCoding protocol +- (id) initWithCoder:(NSCoder *) decoder; +- (void) encodeWithCoder:(NSCoder *) encoder; + +#pragma mark Setters +- (void) setName:(NSString *) iName; +- (void) setValueClass:(Class) iValueClass; +- (void) setInternalType:(NSString *) iInternalType; +- (void) setExternalType:(NSString *) iExternalType; +- (void) setExternalName:(NSString *) iExternalName; +- (void) setWidth:(unsigned int) iWidth; +- (void) setAllowsNull:(BOOL) iAllowsNull; +- (void) setAutoGenerated:(BOOL) iAutoGenerated; +- (void) setIsPartOfKey:(BOOL) iIsPartOfKey; +- (void) setIsPartOfIdentity:(BOOL) iIsPartOfIdentity; +- (void) setHasAccessor:(BOOL) iHasAccessor; +- (void) setDefaultValue:(id) iDefaultValue; +- (void) insertObject:(MCPJoin *) iJoin inJoinsAtIndex:(unsigned int) index; +- (void) removeObjectFromJoinsAtIndex:(unsigned int) index; +//- (void) addRelation:(MCPRelation *) iRelation; +//- (void) removeRelation:(MCPRelation *) iRelation; + +#pragma mark Getters +- (MCPClassDescription *) classDescription; +- (NSString *) name; +- (Class) valueClass; +- (NSString *) valueClassName; +- (NSString *) internalType; +- (NSString *) externalName; +- (NSString *) externalType; +- (unsigned int) width; +- (BOOL) allowsNull; +- (BOOL) autoGenerated; +- (BOOL) isPartOfKey; +- (BOOL) isPartOfIdentity; +- (BOOL) hasAccessor; +- (id) defaultValue; +- (unsigned int) countOfJoins; +- (MCPJoin *) objectInJoinsAtIndex:(unsigned int) index; +- (unsigned int) indexOfJoinIdenticalTo:(id) iJoin; + +#pragma mark Some general methods: +- (BOOL) isEqual:(id) iObject; + +@end |