mirror of
https://github.com/zhigang1992/RestKit.git
synced 2026-04-01 17:39:46 +08:00
85 lines
3.1 KiB
Objective-C
85 lines
3.1 KiB
Objective-C
//
|
|
// RKManagedObjectSeeder.h
|
|
// RestKit
|
|
//
|
|
// Created by Blake Watters on 3/4/10.
|
|
// Copyright 2010 Two Toasters
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
#import "ObjectMapping.h"
|
|
|
|
// The default seed database filename. Used when the object store has not been initialized
|
|
extern NSString* const RKDefaultSeedDatabaseFileName;
|
|
|
|
@protocol RKManagedObjectSeederDelegate
|
|
@required
|
|
|
|
// Invoked when the seeder creates a new object
|
|
- (void)didSeedObject:(NSManagedObject*)object fromFile:(NSString*)fileName;
|
|
@end
|
|
|
|
/**
|
|
* Provides an interface for generating a seed database suitable for initializing
|
|
* a Core Data backed RestKit application. The object seeder loads files from the
|
|
* application's main bundle and processes them with the Object Mapper to produce
|
|
* a database on disk. This file can then be copied into the main bundle of an application
|
|
* and provided to RKManagedObjectStore at initialization to start the app with a set of
|
|
* data immediately available for use within Core Data.
|
|
*/
|
|
@interface RKManagedObjectSeeder : NSObject {
|
|
RKObjectManager* _manager;
|
|
NSObject<RKManagedObjectSeederDelegate>* _delegate;
|
|
}
|
|
|
|
// Delegate for seeding operations
|
|
@property (nonatomic, assign) NSObject<RKManagedObjectSeederDelegate>* delegate;
|
|
|
|
// Path to the generated seed database on disk
|
|
@property (nonatomic, readonly) NSString* pathToSeedDatabase;
|
|
|
|
/**
|
|
* Generates a seed database using an object manager and a null terminated list of files. Exits
|
|
* the seeding process and outputs an informational message
|
|
*/
|
|
+ (void)generateSeedDatabaseWithObjectManager:(RKObjectManager*)objectManager fromFiles:(NSString*)fileName, ...;
|
|
|
|
/**
|
|
* Returns an object seeder ready to begin seeding. Requires a fully configured instance of an object manager.
|
|
*/
|
|
+ (RKManagedObjectSeeder*)objectSeederWithObjectManager:(RKObjectManager*)objectManager;
|
|
|
|
/**
|
|
* Seed the database with objects from the specified file(s). The list must be terminated by nil
|
|
*/
|
|
- (void)seedObjectsFromFiles:(NSString*)fileName, ...;
|
|
|
|
/**
|
|
* Seed the database with objects from the specified file using the supplied object mapping.
|
|
*/
|
|
- (void)seedObjectsFromFile:(NSString*)fileName withObjectMapping:(RKObjectMapping*)nilOrObjectMapping;
|
|
|
|
/**
|
|
* Seed the database with objects from the specified file, from the specified bundle, using the supplied object mapping.
|
|
*/
|
|
- (void)seedObjectsFromFile:(NSString *)fileName withObjectMapping:(RKObjectMapping *)nilOrObjectMapping bundle:(NSBundle *)nilOrBundle;
|
|
|
|
/**
|
|
* Completes a seeding session by persisting the store, outputing an informational message
|
|
* and exiting the process
|
|
*/
|
|
- (void)finalizeSeedingAndExit;
|
|
|
|
@end
|