Class AbstractPromotionAction
java.lang.Object
de.hybris.platform.util.BridgeAbstraction
de.hybris.platform.jalo.Item
de.hybris.platform.jalo.ExtensibleItem
de.hybris.platform.jalo.c2l.LocalizableItem
de.hybris.platform.jalo.GenericItem
de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
de.hybris.platform.promotions.jalo.AbstractPromotionAction
- All Implemented Interfaces:
Serializable,Comparable
- Direct Known Subclasses:
GeneratedAbstractRuleBasedPromotionAction,GeneratedPromotionNullAction,GeneratedPromotionOrderAddFreeGiftAction,GeneratedPromotionOrderAdjustTotalAction,GeneratedPromotionOrderChangeDeliveryModeAction,GeneratedPromotionOrderEntryAdjustAction
AbstractPromotionAction. Base class for promotion actions. Actions represent the effect that an AbstractPromotion
must take to apply its promotion. If a promotion has fired then it will return as part of the PromotionResult the
actions that should be applied to create the promotional behaviour. Actions can be applied and undone. A promotion
may require multiple actions to be applied and therefore the PromotionResult holds a collection of actions and
applied them all. Different actions are implemented in subclasses.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class de.hybris.platform.jalo.GenericItem
GenericItem.GenericItemImplNested classes/interfaces inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LocalizableItem.LocalizableItemImplNested classes/interfaces inherited from class de.hybris.platform.jalo.ExtensibleItem
ExtensibleItem.ExtensibleItemImplNested classes/interfaces inherited from class de.hybris.platform.jalo.Item
Item.AttributeFilter, Item.AttributeMode, Item.CachedGetter, Item.CachedSetter, Item.ItemAttributeMap, Item.ItemConstraint, Item.ItemImpl, Item.JaloCachedComputationException -
Field Summary
Fields inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
DEFAULT_INITIAL_ATTRIBUTES, GUID, MARKEDAPPLIED, PROMOTIONRESULT, PROMOTIONRESULTHANDLERFields inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LANGUAGE_FALLBACK_ENABLEDFields inherited from class de.hybris.platform.jalo.Item
_CREATION_TIME_INTERNAL, _MODIFIED_TIME_INTERNAL, accessorLog, CREATION_TIME, DISABLE_ATTRIBUTE_CHECK, DISABLE_ITEMCHECK_BEFORE_REMOVABLE, EVEN, FEATURE_ACCESSMAP_QUALIFIER, HJMPTS, INITIAL_CREATION_FLAG, isJaloOnly, MODIFIED_TIME, NEGATIVE, NOT_FOUND, OWNER, PK, POSITIVE, SAVE_FROM_SERVICE_LAYER, staticTransientObjects, TYPEFields inherited from class de.hybris.platform.util.BridgeAbstraction
impl, tenant -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanapply()Apply the action to the order.abstract booleanapply(SessionContext ctx) Apply the action to the order.protected AbstractPromotionActiondeepClone(SessionContext ctx) Deep clone this action instance.protected voiddeepCloneAttributes(SessionContext ctx, Map values) Called to deep clone attributes of this instance.getGuid(SessionContext ctx) Get the Unique Identifier assigned to this action.abstract doublegetValue(SessionContext ctx) Get the total value of this action.protected static voidinsertFirstGlobalDiscountValue(SessionContext ctx, AbstractOrder order, DiscountValue discountValue) Add a global DiscountValue to the Order at the first position in the list of discountsprotected static voidinsertFirstOrderEntryDiscountValue(SessionContext ctx, AbstractOrderEntry orderEntry, DiscountValue discountValue) Add a DiscountValue to the OrderEntry at the first position in the list of discountsfinal booleanTest if this action is applied to the order.abstract booleanTest if this action is applied to the order.final booleanundo()Unapply the action from the order.abstract booleanundo(SessionContext ctx) Unapply the action from the order.Methods inherited from class de.hybris.platform.promotions.jalo.GeneratedAbstractPromotionAction
createItem, getDefaultAttributeModes, getGuid, getPromotionResult, getPromotionResult, isMarkedApplied, isMarkedApplied, isMarkedAppliedAsPrimitive, isMarkedAppliedAsPrimitive, setGuid, setGuid, setMarkedApplied, setMarkedApplied, setMarkedApplied, setMarkedApplied, setPromotionResult, setPromotionResultMethods inherited from class de.hybris.platform.jalo.GenericItem
getImplementation, getInitialProperties, getNonInitialAttributes, getRelatedItems, getRelatedItems, setRelatedItemsMethods inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
getAllLocalizedProperties, getAllLocalizedProperties, getAllLocalizedProperties, getAllLocalizedProperties, getAllValuesSessionContext, getLocalizedProperty, getLocalizedProperty, getLocalizedPropertyInternal, getLocalizedPropertyNames, getLocalizedPropertyNames, hasLanguage, isEmptyValue, isFallbackEnabled, removeLocalizedProperty, removeLocalizedProperty, setAllLocalizedProperties, setAllLocalizedProperties, setLocalizedProperty, setLocalizedPropertyMethods inherited from class de.hybris.platform.jalo.ExtensibleItem
createNonClassAccessor, getAllProperties, getAllProperties, getProperty, getProperty, getPropertyNames, getPropertyNames, removeProperty, removeProperty, setAllProperties, setAllProperties, setProperty, setPropertyMethods inherited from class de.hybris.platform.jalo.Item
addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addLinkedItems, addNegativePermission, addPermission, addPositivePermission, assureExtensionsLoaded, changeTypeAfterCreation, checkConstraint, checkItemPermission, checkMandatoryAttribute, checkMandatoryAttribute, checkPermission, checkPermission, checkRemovable, clearPermission, compareTo, ctx, doAfterRemove, doBeforeRemove, equals, getAccessorFor, getAllAttributes, getAllAttributes, getAllAttributes, getAllAttributes, getAllAttributesInternal, getAllLinkedItems, getAndCheckCacheBoundItem, getAttribute, getAttribute, getCacheBoundItem, getComposedType, getComposedTypePK, getCreationTime, getCurrentlyRemovingCount, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItems, getLinkedItemsCount, getLinkedItemsCount, getLinkedItemsCount, getModificationTime, getNegativePermissions, getOwner, getPartOfRemovedSessionMarker, getPermissionMap, getPermissions, getPersistenceVersion, getPK, getPositivePermissions, getRestrictedPrincipals, getSession, getSyncObject, getTenant, getTransientObject, getTransientObjectMap, hashCode, hasRegisteredClassAccessorFor, internal_registerClassAccessorFor, internal_registerNonClassAccessorFor, invalidateLocalCaches, isAlive, isCacheBound, isCurrentlyRemoving, isCurrentlyRemoving, isEmptyRelationValue, isInCreate, isInstanceOf, isItemCheckBeforeRemoveableDisabled, isMarkModifiedDisabled, isRelationLocalizationFallbackEnabled, newInstance, notifyExtensionsAfterItemCreation, notifyExtensionsBeforeItemCreation, notifyItemRemoval, notifyManagerAboutItemRemoval, readResolve, registerAccessFor, registerAccessFor, registerJaloInvalidationListeners, remove, remove, removeItemCollection, removeItemCollection, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinkedItems, removeLinks, removePartOfItems, removePartOfItems, setAllAttributes, setAllAttributes, setAllAttributesInternal, setAllLinkedItems, setAllLinkedItems, setAllLinkedItems, setAllLinkedItems, setAttribute, setAttribute, setAttributeFromString, setAttributeFromString, setCacheBound, setComposedType, setCreationTime, setImplementation, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setLinkedItems, setModificationTime, setNonInitialAttributes, setOwner, setPermissionsByMap, setTransientObject, setUseTA, suppressRelation, toString, useTA, writeReplaceMethods inherited from class de.hybris.platform.util.BridgeAbstraction
setTenant
-
Constructor Details
-
AbstractPromotionAction
public AbstractPromotionAction()
-
-
Method Details
-
getGuid
Get the Unique Identifier assigned to this action.- Overrides:
getGuidin classGeneratedAbstractPromotionAction- Parameters:
ctx- The hybris context- Returns:
- the unique identifier
-
apply
public final boolean apply()Apply the action to the order. Do not callAbstractOrder.recalculate()to update the totals as this disposes of all applied discounts and the promotions engine is unable to intercept the recalculate call to reinstate these.- Returns:
- true if discounts have been applied and calculateTotals needs to be called, false otherwise.
-
apply
Apply the action to the order. Do not callAbstractOrder.recalculate()to update the totals as this disposes of all applied discounts and the promotions engine is unable to intercept the recalculate call to reinstate these.- Parameters:
ctx- The hybris context- Returns:
- true if discounts have been applied and calculateTotals needs to be called, false otherwise.
-
undo
public final boolean undo()Unapply the action from the order.- Returns:
- true if discounts have been removed and calculateTotals needs to be called, false otherwise.
-
undo
Unapply the action from the order.- Parameters:
ctx- The hybris context- Returns:
- true if discounts have been removed and calculateTotals needs to be called, false otherwise.
-
isAppliedToOrder
public final boolean isAppliedToOrder()Test if this action is applied to the order. This is different from isMarkedApplied as there are many ways of removing the effect of the action other than calling theundo()method.- Returns:
- true if the action is applied, false otherwise.
-
isAppliedToOrder
Test if this action is applied to the order.- Parameters:
ctx- The hybris context- Returns:
- true if the action is applied, false otherwise.
-
getValue
Get the total value of this action. For actions providing a discount this should be a positive value.- Parameters:
ctx- The hybris context- Returns:
- The double value that is the value of this action
-
deepClone
Deep clone this action instance.- Parameters:
ctx- The hybris context- Returns:
- a clone of this instance
-
deepCloneAttributes
Called to deep clone attributes of this instance. The values map contains all the attributes defined on this instance. The map will be used to initialse a new instance of the Action that is a clone of this instance. This method can remove, replace or add to the Map of attributes.- Parameters:
ctx- The hybris contextvalues- The map to write into
-
insertFirstGlobalDiscountValue
protected static void insertFirstGlobalDiscountValue(SessionContext ctx, AbstractOrder order, DiscountValue discountValue) Add a global DiscountValue to the Order at the first position in the list of discounts- Parameters:
ctx- The hybris contextorder- The orderdiscountValue- The discount to add
-
insertFirstOrderEntryDiscountValue
protected static void insertFirstOrderEntryDiscountValue(SessionContext ctx, AbstractOrderEntry orderEntry, DiscountValue discountValue) Add a DiscountValue to the OrderEntry at the first position in the list of discounts- Parameters:
ctx- The hybris contextorderEntry- The orderdiscountValue- The discount to add
-