objective-c-sql-query-builder
|
00001 /* 00002 * Copyright 2011-2015 Ziminji 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at: 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #import <Foundation/Foundation.h> 00018 #import "ZIMOrmModelDelegate.h" 00019 00020 // Supported options 00021 #define ZIMOrmOptionLimit @"LIMIT" 00022 #define ZIMOrmOptionOffset @"OFFSET" 00023 00029 @interface ZIMOrmModel : NSObject <ZIMOrmModelDelegate> { 00030 00031 @protected 00032 id __unsafe_unretained _delegate; 00033 NSString *_saved; 00034 00035 } 00036 00037 @property (nonatomic, unsafe_unretained) id delegate; 00038 00046 - (instancetype) initWithDelegate: (id)delegate; 00053 - (instancetype) init; 00064 - (id) belongsTo: (Class)model foreignKey: (NSArray *)foreignKey; // the foreign key array is an ordered list of columns in "self" 00075 - (id) hasOne: (Class)model foreignKey: (NSArray *)foreignKey; // i.e. the foreign key array is an ordered list of columns in "model" 00086 - (NSArray *) hasMany: (Class)model foreignKey: (NSArray *)foreignKey; // i.e. the foreign key array is an ordered list of columns in "model" 00099 - (NSArray *) hasMany: (Class)model foreignKey: (NSArray *)foreignKey options: (NSDictionary *)options; // i.e. the foreign key array is an ordered list of columns in "model" 00105 - (void) delete; 00111 - (void) load; 00117 - (void) save; 00124 + (NSString *) dataSource; 00131 + (NSString *) table; 00138 + (NSArray *) primaryKey; // may be a composite primary key 00145 + (BOOL) isAutoIncremented; 00154 + (NSDictionary *) columns; 00161 + (BOOL) isSaveable; 00170 + (BOOL) isModel: (Class)model; 00171 00172 @end