Package de.hybris.platform.ordercancel
Interface OrderCancelDenialReason
-
- All Superinterfaces:
java.io.Serializable
- All Known Implementing Classes:
DefaultOrderCancelDenialReason
public interface OrderCancelDenialReason extends java.io.Serializable
Marker interface used for objects that represents Order Cancel denial reasons. These denial reasons are used to check exact reasons of why the methodOrderCancelService.isCancelPossible(de.hybris.platform.core.model.order.OrderModel, de.hybris.platform.core.model.security.PrincipalModel, boolean, boolean)
resulted in the cancel denial. Users can use provided DefaultOrderCancelDenialReason class as an implementation for this interface, or use their own denial reason class. How is OrderCancelDenialReason used:- Create a denial reason representation class. This class must implement OrderCancelDenialReason interface. You can
also use class
DefaultOrderCancelDenialReason
that is provided by default. - Define a unique instance of denial reason representation class for each
OrderCancelDenialStrategy
that is defined for the Order Cancel Service. The standard way to do this is via spring xml configuration file. Configured instance should contain an error-code/message/other-data that is specific for the denial strategy. If the denial strategy fires (cancel is denied by the strategy), configured denial reason class instance is returned. - use
OrderCancelService.isCancelPossible(de.hybris.platform.core.model.order.OrderModel, de.hybris.platform.core.model.security.PrincipalModel, boolean, boolean)
method to determine possibility of the cancel. This method returns aCancelDecision
instance. If cancel is denied, denial reasons can be acquired by callingCancelDecision.getDenialReasons()
method. Every element of the returned list is the denial reason class instance that was configured for cancel-denying OrderCancelDenialStrategy.
<bean id="someDenialStrategy" class="..." scope="..."> ... <property name="reason"> <bean class="de.hybris.platform.ordercancel.DefaultOrderCancelDenialReason" > <property name="code" value="2" /> <property name="description" value="aMessage" /> </bean> </property> </bean>