/** * This code was auto-generated by a Codezu. * * Changes to this file may cause incorrect behavior and will be lost if * the code is regenerated. */ package com.mozu.api.resources.commerce.catalog.admin; import com.mozu.api.ApiContext; import java.util.List; import java.util.ArrayList; import com.mozu.api.MozuClient; import com.mozu.api.MozuClientFactory; import com.mozu.api.MozuUrl; import com.mozu.api.Headers; import org.joda.time.DateTime; import com.mozu.api.AsyncCallback; import java.util.concurrent.CountDownLatch; import com.mozu.api.security.AuthTicket; import org.apache.commons.lang.StringUtils; import com.mozu.api.DataViewMode; /** <summary> * Temporarily hold a product from inventory while a shopper is filling out payment information. Create a product reservation when a shopper proceeds to check out and then release the reservation when the order process is complete. * </summary> */ public class ProductReservationResource { /// /// <see cref="Mozu.Api.ApiContext"/> /// private ApiContext _apiContext; private DataViewMode _dataViewMode; public ProductReservationResource(ApiContext apiContext) { _apiContext = apiContext; _dataViewMode = DataViewMode.Live; } public ProductReservationResource(ApiContext apiContext, DataViewMode dataViewMode) { _apiContext = apiContext; _dataViewMode = dataViewMode; } /** * Retrieves a list of product reservations according to any specified filter criteria and sort options. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservationCollection productReservationCollection = productreservation.getProductReservations(); * </code></pre></p> * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservationCollection * @see com.mozu.api.contracts.productadmin.ProductReservationCollection */ public com.mozu.api.contracts.productadmin.ProductReservationCollection getProductReservations() throws Exception { return getProductReservations( null, null, null, null, null); } /** * Retrieves a list of product reservations according to any specified filter criteria and sort options. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.getProductReservations( callback ); * latch.await() * </code></pre></p> * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservationCollection * @see com.mozu.api.contracts.productadmin.ProductReservationCollection */ public CountDownLatch getProductReservationsAsync( AsyncCallback<com.mozu.api.contracts.productadmin.ProductReservationCollection> callback) throws Exception { return getProductReservationsAsync( null, null, null, null, null, callback); } /** * Retrieves a list of product reservations according to any specified filter criteria and sort options. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservationCollection productReservationCollection = productreservation.getProductReservations( startIndex, pageSize, sortBy, filter, responseFields); * </code></pre></p> * @param filter A set of expressions that consist of a field, operator, and value and represent search parameter syntax when filtering results of a query. Valid operators include equals (eq), does not equal (ne), greater than (gt), less than (lt), greater than or equal to (ge), less than or equal to (le), starts with (sw), or contains (cont). For example - "filter=IsDisplayed+eq+true" * @param pageSize The number of results to display on each page when creating paged results from a query. The maximum value is 200. * @param responseFields Use this field to include those fields which are not included by default. * @param sortBy * @param startIndex * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservationCollection * @see com.mozu.api.contracts.productadmin.ProductReservationCollection */ public com.mozu.api.contracts.productadmin.ProductReservationCollection getProductReservations(Integer startIndex, Integer pageSize, String sortBy, String filter, String responseFields) throws Exception { MozuClient<com.mozu.api.contracts.productadmin.ProductReservationCollection> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.getProductReservationsClient(_dataViewMode, startIndex, pageSize, sortBy, filter, responseFields); client.setContext(_apiContext); client.executeRequest(); return client.getResult(); } /** * Retrieves a list of product reservations according to any specified filter criteria and sort options. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.getProductReservations( startIndex, pageSize, sortBy, filter, responseFields, callback ); * latch.await() * </code></pre></p> * @param filter A set of expressions that consist of a field, operator, and value and represent search parameter syntax when filtering results of a query. Valid operators include equals (eq), does not equal (ne), greater than (gt), less than (lt), greater than or equal to (ge), less than or equal to (le), starts with (sw), or contains (cont). For example - "filter=IsDisplayed+eq+true" * @param pageSize The number of results to display on each page when creating paged results from a query. The maximum value is 200. * @param responseFields Use this field to include those fields which are not included by default. * @param sortBy * @param startIndex * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservationCollection * @see com.mozu.api.contracts.productadmin.ProductReservationCollection */ public CountDownLatch getProductReservationsAsync(Integer startIndex, Integer pageSize, String sortBy, String filter, String responseFields, AsyncCallback<com.mozu.api.contracts.productadmin.ProductReservationCollection> callback) throws Exception { MozuClient<com.mozu.api.contracts.productadmin.ProductReservationCollection> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.getProductReservationsClient(_dataViewMode, startIndex, pageSize, sortBy, filter, responseFields); client.setContext(_apiContext); return client.executeRequest(callback); } /** * Retrieves the details of a product reservation. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservation productReservation = productreservation.getProductReservation( productReservationId); * </code></pre></p> * @param productReservationId Unique identifier of the product reservation. * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public com.mozu.api.contracts.productadmin.ProductReservation getProductReservation(Integer productReservationId) throws Exception { return getProductReservation( productReservationId, null); } /** * Retrieves the details of a product reservation. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.getProductReservation( productReservationId, callback ); * latch.await() * </code></pre></p> * @param productReservationId Unique identifier of the product reservation. * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public CountDownLatch getProductReservationAsync(Integer productReservationId, AsyncCallback<com.mozu.api.contracts.productadmin.ProductReservation> callback) throws Exception { return getProductReservationAsync( productReservationId, null, callback); } /** * Retrieves the details of a product reservation. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservation productReservation = productreservation.getProductReservation( productReservationId, responseFields); * </code></pre></p> * @param productReservationId Unique identifier of the product reservation. * @param responseFields Use this field to include those fields which are not included by default. * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public com.mozu.api.contracts.productadmin.ProductReservation getProductReservation(Integer productReservationId, String responseFields) throws Exception { MozuClient<com.mozu.api.contracts.productadmin.ProductReservation> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.getProductReservationClient(_dataViewMode, productReservationId, responseFields); client.setContext(_apiContext); client.executeRequest(); return client.getResult(); } /** * Retrieves the details of a product reservation. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.getProductReservation( productReservationId, responseFields, callback ); * latch.await() * </code></pre></p> * @param productReservationId Unique identifier of the product reservation. * @param responseFields Use this field to include those fields which are not included by default. * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @return com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public CountDownLatch getProductReservationAsync(Integer productReservationId, String responseFields, AsyncCallback<com.mozu.api.contracts.productadmin.ProductReservation> callback) throws Exception { MozuClient<com.mozu.api.contracts.productadmin.ProductReservation> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.getProductReservationClient(_dataViewMode, productReservationId, responseFields); client.setContext(_apiContext); return client.executeRequest(callback); } /** * Creates a new product reservation for a product. This action places a hold on the product inventory for the quantity specified during the ordering process. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservation productReservation = productreservation.addProductReservations( productReservations); * </code></pre></p> * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public List<com.mozu.api.contracts.productadmin.ProductReservation> addProductReservations(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations) throws Exception { return addProductReservations( productReservations, null); } /** * Creates a new product reservation for a product. This action places a hold on the product inventory for the quantity specified during the ordering process. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.addProductReservations( productReservations, callback ); * latch.await() * </code></pre></p> * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public CountDownLatch addProductReservationsAsync(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations, AsyncCallback<List<com.mozu.api.contracts.productadmin.ProductReservation>> callback) throws Exception { return addProductReservationsAsync( productReservations, null, callback); } /** * Creates a new product reservation for a product. This action places a hold on the product inventory for the quantity specified during the ordering process. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservation productReservation = productreservation.addProductReservations( productReservations, skipInventoryCheck); * </code></pre></p> * @param skipInventoryCheck If true, skip the process to validate inventory when creating this product reservation. * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public List<com.mozu.api.contracts.productadmin.ProductReservation> addProductReservations(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations, Boolean skipInventoryCheck) throws Exception { MozuClient<List<com.mozu.api.contracts.productadmin.ProductReservation>> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.addProductReservationsClient(_dataViewMode, productReservations, skipInventoryCheck); client.setContext(_apiContext); client.executeRequest(); return client.getResult(); } /** * Creates a new product reservation for a product. This action places a hold on the product inventory for the quantity specified during the ordering process. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.addProductReservations( productReservations, skipInventoryCheck, callback ); * latch.await() * </code></pre></p> * @param skipInventoryCheck If true, skip the process to validate inventory when creating this product reservation. * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public CountDownLatch addProductReservationsAsync(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations, Boolean skipInventoryCheck, AsyncCallback<List<com.mozu.api.contracts.productadmin.ProductReservation>> callback) throws Exception { MozuClient<List<com.mozu.api.contracts.productadmin.ProductReservation>> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.addProductReservationsClient(_dataViewMode, productReservations, skipInventoryCheck); client.setContext(_apiContext); return client.executeRequest(callback); } /** * Commits a product reservation to decrement the product's inventory by the quantity specified then release the reservation once the order process completed successfully. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * productreservation.commitReservations( productReservations); * </code></pre></p> * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return * @see com.mozu.api.contracts.productadmin.ProductReservation */ public void commitReservations(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations) throws Exception { MozuClient client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.commitReservationsClient(_dataViewMode, productReservations); client.setContext(_apiContext); client.executeRequest(); client.cleanupHttpConnection(); } /** * Updates an existing product reservation for a product. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservation productReservation = productreservation.updateProductReservations( productReservations); * </code></pre></p> * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public List<com.mozu.api.contracts.productadmin.ProductReservation> updateProductReservations(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations) throws Exception { return updateProductReservations( productReservations, null); } /** * Updates an existing product reservation for a product. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.updateProductReservations( productReservations, callback ); * latch.await() * </code></pre></p> * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public CountDownLatch updateProductReservationsAsync(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations, AsyncCallback<List<com.mozu.api.contracts.productadmin.ProductReservation>> callback) throws Exception { return updateProductReservationsAsync( productReservations, null, callback); } /** * Updates an existing product reservation for a product. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * ProductReservation productReservation = productreservation.updateProductReservations( productReservations, skipInventoryCheck); * </code></pre></p> * @param skipInventoryCheck If true, skip the process to validate inventory when creating this product reservation. * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public List<com.mozu.api.contracts.productadmin.ProductReservation> updateProductReservations(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations, Boolean skipInventoryCheck) throws Exception { MozuClient<List<com.mozu.api.contracts.productadmin.ProductReservation>> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.updateProductReservationsClient(_dataViewMode, productReservations, skipInventoryCheck); client.setContext(_apiContext); client.executeRequest(); return client.getResult(); } /** * Updates an existing product reservation for a product. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * CountDownLatch latch = productreservation.updateProductReservations( productReservations, skipInventoryCheck, callback ); * latch.await() * </code></pre></p> * @param skipInventoryCheck If true, skip the process to validate inventory when creating this product reservation. * @param callback callback handler for asynchronous operations * @param dataViewMode DataViewMode * @param productReservations A hold placed on product inventory for a particular product so that the quantity specified is set aside and available for purchase during the ordering process. * @return List<com.mozu.api.contracts.productadmin.ProductReservation> * @see com.mozu.api.contracts.productadmin.ProductReservation * @see com.mozu.api.contracts.productadmin.ProductReservation */ public CountDownLatch updateProductReservationsAsync(List<com.mozu.api.contracts.productadmin.ProductReservation> productReservations, Boolean skipInventoryCheck, AsyncCallback<List<com.mozu.api.contracts.productadmin.ProductReservation>> callback) throws Exception { MozuClient<List<com.mozu.api.contracts.productadmin.ProductReservation>> client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.updateProductReservationsClient(_dataViewMode, productReservations, skipInventoryCheck); client.setContext(_apiContext); return client.executeRequest(callback); } /** * Deletes a product reservation. For example, delete a reservation when an order is not processed to return the product quantity back to inventory. * <p><pre><code> * ProductReservation productreservation = new ProductReservation(); * productreservation.deleteProductReservation( productReservationId); * </code></pre></p> * @param productReservationId Unique identifier of the product reservation. * @param dataViewMode DataViewMode * @return */ public void deleteProductReservation(Integer productReservationId) throws Exception { MozuClient client = com.mozu.api.clients.commerce.catalog.admin.ProductReservationClient.deleteProductReservationClient(_dataViewMode, productReservationId); client.setContext(_apiContext); client.executeRequest(); client.cleanupHttpConnection(); } }