doc
 All Classes Functions Variables Properties
/Users/rburkes/Projects/mobile/branches/release-1-2/devices/iphone/core/src/EMLib/EMGlobalConfiguration.h
00001 /*
00002 Copyright 2001, 2012, Oracle and/or its affiliates. All rights reserved.
00003 Oracle and Java are registered trademarks of Oracle and/or its 
00004 affiliates. Other names may be trademarks of their respective owners.
00005 UNIX is a registered trademark of The Open Group.
00006 
00007 This software and related documentation are provided under a license 
00008 agreement containing restrictions on use and disclosure and are 
00009 protected by intellectual property laws. Except as expressly permitted 
00010 in your license agreement or allowed by law, you may not use, copy, 
00011 reproduce, translate, broadcast, modify, license, transmit, distribute, 
00012 exhibit, perform, publish, or display any part, in any form, or by any 
00013 means. Reverse engineering, disassembly, or decompilation of this 
00014 software, unless required by law for interoperability, is prohibited.
00015 The information contained herein is subject to change without notice 
00016 and is not warranted to be error-free. If you find any errors, please 
00017 report them to us in writing.
00018 U.S. GOVERNMENT END USERS: Oracle programs, including any operating 
00019 system, integrated software, any programs installed on the hardware, 
00020 and/or documentation, delivered to U.S. Government end users are 
00021 "commercial computer software" pursuant to the applicable Federal 
00022 Acquisition Regulation and agency-specific supplemental regulations. 
00023 As such, use, duplication, disclosure, modification, and adaptation 
00024 of the programs, including any operating system, integrated software, 
00025 any programs installed on the hardware, and/or documentation, shall be 
00026 subject to license terms and license restrictions applicable to the 
00027 programs. No other rights are granted to the U.S. Government.
00028 This software or hardware is developed for general use in a variety 
00029 of information management applications. It is not developed or 
00030 intended for use in any inherently dangerous applications, including 
00031 applications that may create a risk of personal injury. If you use 
00032 this software or hardware in dangerous applications, then you shall 
00033 be responsible to take all appropriate fail-safe, backup, redundancy, 
00034 and other measures to ensure its safe use. Oracle Corporation and its 
00035 affiliates disclaim any liability for any damages caused by use of this 
00036 software or hardware in dangerous applications.
00037 This software or hardware and documentation may provide access to or 
00038 information on content, products, and services from third parties. 
00039 Oracle Corporation and its affiliates are not responsible for and 
00040 expressly disclaim all warranties of any kind with respect to 
00041 third-party content, products, and services. Oracle Corporation and 
00042 its affiliates will not be responsible for any loss, costs, or damages 
00043 incurred due to your access to or use of third-party content, products, 
00044 or services.
00045 */
00046 
00047 
00048 #import <Foundation/Foundation.h>
00049 #import "EMObjectDetailController.h"
00050 
00055 @class EMSearchQuery, EMSearchTableCell, EMSearchQueryDataSource, 
00056 EMSearchQueryInfiniteScrollController, EMStoreLocatorViewController, EMContentItem, EMNavStateItem, EMReview, EMFacetValueSelection,
00057 EMSearchQueryDataSource, EMSearchQueryFacetsController, EMProduct, EMRecord, EMLocalCartDataSource, EMTypeaheadDataSource, EMCartItem;
00058 
00059 
00066 @protocol EMGlobalConfiguration
00067 
00068 
00069 
00070 
00071 #pragma mark -
00072 #pragma mark Endpoint and API Key Configuration
00073 
00090 @property (nonatomic, readonly) NSString *typeaheadEndpoint;
00091 
00092 
00106 - (NSString *) detailEndpointForRecord:(EMRecord *)item;
00107 
00116 @property (nonatomic, readonly) NSString *searchEndpoint;
00117 
00126 @property (nonatomic, readonly) NSString *storesEndpoint;
00127 
00136 @property (nonatomic, readonly) NSString *reviewsEndpoint;
00137 
00147 @property (nonatomic, readonly) NSString *cartEndpoint;
00148 
00165 @property (nonatomic, readonly) NSString *brandsEndpoint;
00166 
00172 @property (nonatomic, readonly) NSString *twitterOAuthConsumerKey;
00173 
00177 @property (nonatomic, readonly) NSString *twitterOAuthConsumerSecret;
00178 
00182 @property (nonatomic, readonly) NSString *facebookAppKey;
00183 
00189 @property (nonatomic, readonly) NSString *bitlyApiKey;
00190 
00194 @property (nonatomic, readonly) NSString *bitlyLogin;
00195 
00196 
00197 
00198 
00199 
00200 #pragma mark -
00201 #pragma mark Model Class and Data Source configuration
00202 
00208 - (Class) recordClass;
00209 
00215 - (Class) storeClass;
00216 
00217 
00221 - (EMSearchQueryDataSource *) searchDataSourceFromQuery:(EMSearchQuery *)query;
00222 
00226 - (EMLocalCartDataSource *) cartDataSource;
00227 
00231 - (EMTypeaheadDataSource *) searchTypeaheadDataSource;
00232 
00236 - (EMSearchQueryDataSource *) storeDataSource:(EMSearchQuery *)query;
00237 
00238 
00239 
00240 
00241 
00242 #pragma mark -
00243 #pragma mark View Configuration configuration
00244 
00249 - (UIViewController *) searchController;
00250 
00258 - (UIViewController *) searchResultControllerFromDataSource:(EMSearchQueryDataSource *)dataSource;
00259 
00265 - (EMSearchQueryFacetsController *) facetsControllerFromDataSource:(EMSearchQueryDataSource *)dataSource;
00266 
00271 - (UIViewController<EMObjectDetailController> *) detailController;
00272 
00277 - (UIViewController<EMObjectDetailController> *) storeInfoController;
00278 
00282 - (EMSearchQueryFacetsController *) storeLocatorFacetsControllerFromDataSource:(EMSearchQueryDataSource *)dataSource;
00283 
00284 
00285 
00286 
00287 
00288 #pragma mark -
00289 #pragma mark Page Builder configuration
00290 
00294 - (BOOL) hasControllerForURI:(NSString *)uri item:(EMNavStateItem *)item;
00295 
00299 - (UIViewController *) controllerForNavStateItem:(EMNavStateItem *)item;
00300 
00304 - (UIViewController *) controllerForURI:(NSString *)uri item:(EMNavStateItem *)item;
00305 
00306 
00311 - (UIViewController *) controllerFromDataSource:(EMSearchQueryDataSource *)dataSource;
00312 
00313 
00314 
00315 
00316 
00317 #pragma mark -
00318 #pragma mark iPad Configuration
00319 
00320 - (NSArray *) sortOptions;
00321 
00322 /*
00323  * These controllers views are displayed on the detail page, 
00324  * they will be occupying a frame of 510x460px.
00325  * For performance reasons related to animating the views
00326  * it is reccomended you set the view.layer.opaque = YES
00327  */
00328 - (UIViewController *) controllerForDetailTab1:(EMProduct *)item;
00329 
00330 - (UIViewController *) controllerForDetailTab2:(EMProduct *)item;
00331 
00332 - (UIViewController *) controllerForDetailTab3:(EMProduct *)item;
00333 
00334 - (UIViewController *) controllerForDetailTab4:(EMProduct *)item;
00335 
00336 @end
00337 
00338 
00343 @interface EMGlobalConfiguration : NSObject {
00344 }
00345 
00346 
00347 @end
00348 
00349