Files
RestKit/Code/ObjectMapping/RKObjectMappable.h

54 lines
1.8 KiB
Objective-C

/*
* RKObjectMappable.h
* RestKit
*
* Created by Blake Watters on 8/14/09.
* Copyright 2009 Two Toasters. All rights reserved.
*
*/
/**
* Must be implemented by all classes utilizing the RKModelMapper to map REST
* responses to domain model classes
*/
@protocol RKObjectMappable
/**
* Must return a dictionary containing mapping from XML element names to property accessors
*/
+ (NSDictionary*)elementToPropertyMappings;
/**
* Must return a dictionary mapping XML element names to related object accessors. Must
* return an empty dictionary if there are no related objects.
*
* To differentiate between single associated objects and collections, use descendent
* selectors. For example, given a Project model associated with a user and a collection
* of tasks:
*
* [NSDictionary dictionaryWithObject:@"user" forKey:@"user"];
* Will map from an XML element named user to the user property on the model instance.
*
* [NSDictionary dictionaryWithObject:@"tasks" forKey:@"tasks > task"];
* Will map from the collection of XML elements named task nested under the tasks element
* to the tasks property on the model instance. The assigned collection is assumed to be an NSSet.
*/
+ (NSDictionary*)elementToRelationshipMappings;
@optional
/**
* Return a dictionary of values to be serialized for submission to a remote resource. The router
* will encode these parameters into a serialization format (form encoded, JSON, etc). This is
* required to use putObject: and postObject: for updating and creating remote object representations.
*/
- (NSDictionary*)paramsForSerialization;
/**
* Must return a new autoreleased instance of the model class ready for mapping. Used to initialize the model
* via any method other than alloc & init.
*/
+ (id)object;
@end