public class SubscriptionFacadeClient extends AbstractSubscriptionFacadeClient
This class provides common methods that this and other utility class to the Subscription facade can use. This class also provides a set of convenient Java API to represent particular Subscription operations. This set of Java API also include APIs for Web based requests to transform the name value pair request into the appropriate request documents. It also provides a set of methods which are used by the order component to create subscriptions and recurring orders. These methods are not similar to the traditional web methods in terms of the map they receive as input and should not be called directly from the web.
Modifier and Type | Field and Description |
---|---|
static java.lang.String | COPYRIGHT
IBM Copyright notice field.
|
Constructor and Description |
---|
SubscriptionFacadeClient()
Creates an instance of the client to communicate with the Subscription facade.
|
SubscriptionFacadeClient(BusinessContextType businessContext, javax.security.auth.callback.CallbackHandler callbackHandler)
Creates an instance of the client to communicate with the Subscription facade.
|
Modifier and Type | Method and Description |
---|---|
java.util.Map | activateSubscription(java.util.Map inputParameters)
Activates a subscription or recurring order.
|
protected com.ibm.commerce.foundation.common.datatypes.ScheduleInfoType | buildFulfillmentSchedule(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the fulfillment schedule information based on the input parameters.
|
protected com.ibm.commerce.foundation.common.datatypes.ScheduleEndInfoType | buildFulfillmentScheduleEndInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the fulfillment schedule end information using the input parameters.
|
protected com.ibm.commerce.foundation.common.datatypes.ScheduleFrequencyInfoType | buildFulfillmentScheduleFrequencyInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the fulfillment schedule frequency information using the parameters specified.
|
protected com.ibm.commerce.foundation.common.datatypes.ScheduleStartInfoType | buildFulfillmentScheduleStartInfoType(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the fulfillment schedule's start information using the parameters specified.
|
protected com.ibm.commerce.foundation.common.datatypes.SubscriptionPaymentInfoType | buildPaymentInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the payment information instance based on the input parameters specified.
|
protected com.ibm.commerce.foundation.common.datatypes.ScheduleInfoType | buildPaymentSchedule(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the payment schedule instance based on the input parameters specified.
|
protected StoreIdentifierType | buildStoreIdentifierObject(java.util.Map parameters)
This method builds the store identifier based on the input map.
|
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] | buildSubscriptionDataObject(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds SubscriptionType objects using the input parameters specified.
|
protected com.ibm.commerce.foundation.common.datatypes.SubscriptionIdentifierType | buildSubscriptionIdentifier(java.util.Map inputParameters, java.lang.String actionName)
This method builds the SubscriptionIdentifierType using the parameters specified.
|
protected com.ibm.commerce.foundation.common.datatypes.SubscriptionInfoType[] | buildSubscriptionInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method builds the SubscriptionInfo instance based on the input parameters specified.
|
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionPurchaseDetailsType[] | buildSubscriptionPurchaseDetails(java.util.Map parameters, java.lang.Boolean isRecurring, java.lang.String actionName)
This method constructs the purchase details type object for the subscription.
|
java.util.Map | cancelSubscription(java.util.Map inputParameters)
Cancels a subscription.
|
java.util.Map | createRecurringOrder(java.util.Map inputParameters)
Creates a recurring order.
|
java.util.Map | createSubscriptions(java.util.Map inputParameters)
Creates the subscription entry for all the subscription items that are present in the order .
|
protected void | populateMultipleSubscriptionResponse(java.util.Map response, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] subscriptions)
This method populates the subscription response when multiple subscriptions were processed in the same request.
|
protected void | populateSubscriptionResponse(java.util.Map response, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType subscription)
This method populates the response map after the service is invoked.
|
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionType | processSubscription(java.lang.String actionCode, java.lang.String actionExpression, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType subscription)
This method invokes the Process subscription service based on the action code and the action expression.
|
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] | processSubscription(java.lang.String actionCode, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] subscriptions)
This method invokes the Process subscription service based on the action code and the action expression.
|
protected java.lang.String[] | resolveParameter(java.util.Map parameters, java.lang.String key)
This method resolves parameters from the input Map.
|
public static final java.lang.String COPYRIGHT
public SubscriptionFacadeClient()
public SubscriptionFacadeClient(BusinessContextType businessContext, javax.security.auth.callback.CallbackHandler callbackHandler)
public java.util.Map createRecurringOrder(java.util.Map inputParameters) throws SubscriptionException
The following parameters are optional depending on the recurring order being placed.
Map parameters = new HashMap(); parameters.put("currency", new String[] {"USD"}); parameters.put("totalCost", new String[] {"300.00"}); parameters.put("orderId", new String[] {"10003"}); parameters.put("state", "Active"); Map ffmScheduleMap = new HashMap(); ffmScheduleMap.put("startDate", new String[] {"2010-10-16T07:32:48.437Z"}); ffmScheduleMap.put("timePeriod", new String[] {"100"}); ffmScheduleMap.put("timePeriodUOM", new String[] {"DAY"}); ffmScheduleMap.put("ffmFrequency", new String[] {"12"}); ffmScheduleMap.put("fulfillmentFrequencyUOM", new String[] {"DAY"}); ffmScheduleMap.put("numOfFulfillments", new String[] {"100"}); parameters.put("fulfillmentSchedule",ffmScheduleMap); Map paymentScheduleMap = new HashMap(); paymentScheduleMap.put("paymentFrequency", new String[] {"15"}); paymentScheduleMap.put("paymentFrequencyUOM", new String[] {"DAY"}); parameters.put("paymentSchedule",paymentScheduleMap);
public java.util.Map createSubscriptions(java.util.Map inputParameters) throws SubscriptionException
Each map in the subscription items list provides all the details of the item. The details provided are:
Map parameters = new HashMap(); List subscriptionItems = new ArrayList(); Map subscriptionItem = new HashMap(); subscriptionItem.put("currency", new String[] {"USD"}); subscriptionItem.put("totalCost", new String[] {"200.00"}); subscriptionItem.put("quantity", new String[] {"2"}); subscriptionItem.put("catalogEntryId", new String[] {"10005"}); subscriptionItem.put("orderItemId", new String[] {"10004"}); subscriptionItem.put("state", "Active"); Map ffmScheduleMap = new HashMap(); ffmScheduleMap.put("startDate", new String[] {"2010-10-16T07:32:48.437Z"}); ffmScheduleMap.put("timePeriod", new String[] {"100"}); ffmScheduleMap.put("timePeriodUOM", new String[] {"DAY"}); ffmScheduleMap.put("ffmFrequency", new String[] {"12"}); ffmScheduleMap.put("fulfillmentFrequencyUOM", new String[] {"DAY"}); ffmScheduleMap.put("numOfFulfillments", new String[] {"100"}); subscriptionItem.put("fulfillmentSchedule",ffmScheduleMap); Map paymentScheduleMap = new HashMap(); paymentScheduleMap.put("paymentFrequency", new String[] {"15"}); paymentScheduleMap.put("paymentFrequencyUOM", new String[] {"DAY"}); subscriptionItem.put("paymentSchedule",paymentScheduleMap); subscriptionItems.add(subscriptionItem); parameters.put("subscriptionItems",subscriptionItems); parameters.put("orderId",new String[] {"20001"});
protected void populateMultipleSubscriptionResponse(java.util.Map response, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] subscriptions)
public java.util.Map activateSubscription(java.util.Map inputParameters) throws SubscriptionException
SubscriptionFacadeClient client = new SubscriptionFacadeClient(); Map map = new HashMap(); map.put("subscriptionId", new String[] {"10101"}); client.activateSubscription(map);
SubscriptionFacadeClient client = new SubscriptionFacadeClient(); Map map = new HashMap(); map.put("orderId", new String[] {"1003"}); map.put("orderItemId", new String[] {"1002"}); client.activateSubscription(map);
public java.util.Map cancelSubscription(java.util.Map inputParameters) throws SubscriptionException
SubscriptionFacadeClient client = new SubscriptionFacadeClient(); Map map = new HashMap(); map.put("subscriptionId", new String[] {"10101"}); client.cancelSubscription(map);
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] buildSubscriptionDataObject(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
protected com.ibm.commerce.foundation.common.datatypes.SubscriptionInfoType[] buildSubscriptionInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
For a subscription, this method looks for the subscriptionItems list in the input map to build all the SubscriptionInfoType for the subscription items.
protected com.ibm.commerce.foundation.common.datatypes.SubscriptionPaymentInfoType buildPaymentInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("currency", new String[] {"USD"}); map.put("totalCost", new String[] {"155.90"});
protected com.ibm.commerce.foundation.common.datatypes.ScheduleInfoType buildPaymentSchedule(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("paymentFrequency", new String[] {"15"}); map.put("paymentFrequencyUOM", new String[] {"DAY"});
protected com.ibm.commerce.foundation.common.datatypes.ScheduleInfoType buildFulfillmentSchedule(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("startDate", new String[] {"2010-10-16T07:32:48.437Z"}); map.put("timePeriod", new String[] {"100"}); map.put("timePeriodUOM", new String[] {"DAY"}); map.put("ffmFrequency", new String[] {"12"}); map.put("fulfillmentFrequencyUOM", new String[] {"DAY"}); map.put("numOfFulfillments", new String[] {"100"});
protected com.ibm.commerce.foundation.common.datatypes.ScheduleEndInfoType buildFulfillmentScheduleEndInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("endDate", new String[] {"2010-10-16T07:32:48.437Z"}); map.put("timePeriod", new String[] {"100"}); map.put("timePeriodUOM", new String[] {"DAY"}); map.put("numOfFulfillments", new String[] {"100"});The method looks for either of the values mentioned in the above list in the same order.
protected com.ibm.commerce.foundation.common.datatypes.ScheduleFrequencyInfoType buildFulfillmentScheduleFrequencyInfo(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("ffmFrequency", new String[] {"12"}); map.put("fulfillmentFrequencyUOM", new String[] {"DAY"});
protected com.ibm.commerce.foundation.common.datatypes.ScheduleStartInfoType buildFulfillmentScheduleStartInfoType(java.util.Map inputParameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("startDate", new String[] {"2010-10-16T07:32:48.437Z"});
protected com.ibm.commerce.foundation.common.datatypes.SubscriptionIdentifierType buildSubscriptionIdentifier(java.util.Map inputParameters, java.lang.String actionName) throws SubscriptionException
Map map = new HashMap(); map.put("subscriptionId", new String[] {"1111"});
protected StoreIdentifierType buildStoreIdentifierObject(java.util.Map parameters) throws SubscriptionException
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionPurchaseDetailsType[] buildSubscriptionPurchaseDetails(java.util.Map parameters, java.lang.Boolean isRecurring, java.lang.String actionName) throws SubscriptionException
For a recurring order, the method looks for the orderId parameter.
For subscriptions, the method looks for the subscriptionItems parameter. The subscription items list is expected to be a list of maps where each map corresponds to a subscription item. In each map, the method looks for the orderItemId, catalogEntryId and quantity while the orderId is taken from the input parameters map.
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionType processSubscription(java.lang.String actionCode, java.lang.String actionExpression, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType subscription) throws SubscriptionException
protected com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] processSubscription(java.lang.String actionCode, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType[] subscriptions) throws SubscriptionException
protected void populateSubscriptionResponse(java.util.Map response, com.ibm.commerce.subscription.facade.datatypes.SubscriptionType subscription) throws SubscriptionException
protected java.lang.String[] resolveParameter(java.util.Map parameters, java.lang.String key) throws SubscriptionException