doc
|
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