Class Discount
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable
- Direct Known Subclasses:
GeneratedVoucher
public class Discount extends GeneratedDiscount
The discount class. There are different kinds of discounts: absolute or relative, and global and non-global. Absolute discounts contain a real price value (price and currency), whereas relative discounts are discounts in percent. Global discounts are applied on order level, which means that they can not be applied to a single entry. Non-global discounts are only applicable on entry - level. Since all price calculation is done be the currently installed pricefactory refer to it for maybe differing behaviour.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.GenericItem
GenericItem.GenericItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LocalizableItem.LocalizableItemImpl
-
Nested classes/interfaces inherited from class de.hybris.platform.jalo.ExtensibleItem
ExtensibleItem.ExtensibleItemImpl
-
Nested 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 Modifier and Type Field Description static java.lang.String
EXTERNAL_KEY
The external key - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.static java.lang.String
GLOBAL
The isGlobal - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.static java.lang.String
VALUE_END
The value range end - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.static java.lang.String
VALUE_START
The value range start - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.-
Fields inherited from class de.hybris.platform.jalo.order.price.GeneratedDiscount
ABSOLUTE, CODE, CURRENCY, DEFAULT_INITIAL_ATTRIBUTES, DISCOUNTSTRING, NAME, ORDERDISCOUNTRELATION_MARKMODIFIED, ORDERDISCOUNTRELATION_SRC_ORDERED, ORDERDISCOUNTRELATION_TGT_ORDERED, ORDERS, PRIORITY, VALUE
-
Fields inherited from class de.hybris.platform.jalo.c2l.LocalizableItem
LANGUAGE_FALLBACK_ENABLED
-
Fields 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, TYPE
-
Fields inherited from class de.hybris.platform.util.BridgeAbstraction
impl, tenant
-
-
Constructor Summary
Constructors Constructor Description Discount()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addOrder(AbstractOrder order)
Deprecated.since ages - useGeneratedDiscount.addToOrders(AbstractOrder)
protected Item
createItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes)
Has to be implemented for each concrete subtype of item.java.util.Map
getAllNames(SessionContext ctx)
Deprecated.since ages - useGeneratedDiscount.getAllName(SessionContext)
protected java.lang.String
getDiscountstring()
Deprecated.since ages - useGeneratedDiscount.getDiscountString()
java.lang.String
getDiscountString(SessionContext ctx)
Generated method - Getter of theDiscount.discountString
attribute.DiscountValue
getDiscountValue(AbstractOrder order)
Calculates avalue
which should be applied to the given order during (re)calculation.java.lang.Integer
getPriority(SessionContext ctx)
Generated method - Getter of theDiscount.priority
attribute.java.lang.Double
getValue(SessionContext ctx)
Generated method - Getter of theDiscount.value
attribute.java.lang.Boolean
isAbsolute(SessionContext ctx)
Generated method - Getter of theDiscount.absolute
attribute.void
notifyOrderCalculated(AbstractOrder order)
Notifies this discount if an order which it is assigned to has been calculated.void
notifyOrderRemoval(AbstractOrder order)
Called just before a order is about to be removed.void
removeOrder(AbstractOrder order)
Deprecated.since ages - useGeneratedDiscount.removeFromOrders(AbstractOrder)
void
setAllNames(SessionContext ctx, java.util.Map names)
Deprecated.since ages - useGeneratedDiscount.setAllName(SessionContext, Map)
void
setCode(SessionContext ctx, java.lang.String code)
Changes the code of this discount object.-
Methods inherited from class de.hybris.platform.jalo.order.price.GeneratedDiscount
addToOrders, addToOrders, getAllName, getAllName, getCode, getCode, getCurrency, getCurrency, getDefaultAttributeModes, getDiscountString, getName, getName, getOrders, getOrders, getOrdersCount, getOrdersCount, getPriority, getPriorityAsPrimitive, getPriorityAsPrimitive, getValue, getValueAsPrimitive, getValueAsPrimitive, isAbsolute, isAbsoluteAsPrimitive, isAbsoluteAsPrimitive, isGlobal, isGlobal, isGlobalAsPrimitive, isGlobalAsPrimitive, isMarkModifiedDisabled, removeFromOrders, removeFromOrders, setAllName, setAllName, setCode, setCurrency, setCurrency, setGlobal, setGlobal, setGlobal, setGlobal, setName, setName, setOrders, setOrders, setPriority, setPriority, setPriority, setPriority, setValue, setValue, setValue, setValue
-
Methods inherited from class de.hybris.platform.jalo.GenericItem
getImplementation, getInitialProperties, getNonInitialAttributes, getRelatedItems, setRelatedItems
-
Methods 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, setLocalizedProperty
-
Methods inherited from class de.hybris.platform.jalo.ExtensibleItem
createNonClassAccessor, getAllProperties, getAllProperties, getProperty, getProperty, getPropertyNames, getPropertyNames, removeProperty, removeProperty, setAllProperties, setAllProperties, setProperty, setProperty
-
Methods 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, 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, 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, toString, useTA, writeReplace
-
Methods inherited from class de.hybris.platform.util.BridgeAbstraction
setTenant
-
-
-
-
Field Detail
-
EXTERNAL_KEY
public static final java.lang.String EXTERNAL_KEY
The external key - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.- See Also:
- Constant Field Values
-
GLOBAL
public static final java.lang.String GLOBAL
The isGlobal - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.- See Also:
- Constant Field Values
-
VALUE_START
public static final java.lang.String VALUE_START
The value range start - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.- See Also:
- Constant Field Values
-
VALUE_END
public static final java.lang.String VALUE_END
The value range end - search constant forOrderManager.searchDiscounts(de.hybris.platform.jalo.SearchContext)
.- See Also:
- Constant Field Values
-
-
Method Detail
-
createItem
protected Item createItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes) throws JaloBusinessException
Description copied from class:Item
Has to be implemented for each concrete subtype of item. This method is responsible for creating a new item instance ( by calling managers, ejb homes, etc. ) duringComposedType.newInstance(Map)
.In case this method uses any of the attribute values during creation it is required to override
Item.getNonInitialAttributes(SessionContext, ItemAttributeMap)
too.
Sn example:public static final String MY_ATTRIBUTE = "someAttribute"; ... protected Item createItem(SessionContext ctx, ComposedType type, Map allAttributes ) throws JaloBusinessException { MyManager man = ... return man.createMyItem( (String)allAttributes.get(MY_ATTRIBUTE) ); // here MY_ATTRIBUTE is used for creation, so it must not be set again } protected Map getNonInitialAttributes( SessionContext ctx, Map allAttributes ) { // let superclass remove its own initial attributes Map ret = super.getNonInitialAttributes( ctx, allAttributes ); // remove MY_ATTRIBUTE from all attributes since if has already been set ret.remove(MY_ATTRIBUTE); return ret; }
- Overrides:
createItem
in classGenericItem
- Parameters:
ctx
- the current session context which this item is created withintype
- the actual item type ( since subtypes may not provide a own jalo class this may be different from the type which this method was implemented for )- Returns:
- the new item instance
- Throws:
JaloBusinessException
- indicates an error during creation - any changes will be rollbacked
-
getAllNames
@Deprecated public java.util.Map getAllNames(SessionContext ctx)
Deprecated.since ages - useGeneratedDiscount.getAllName(SessionContext)
Gives all names (in all languages)- Parameters:
ctx
- A SessionContext object- Returns:
- map with following combination key:language, value:name
-
setAllNames
@Deprecated public void setAllNames(SessionContext ctx, java.util.Map names)
Deprecated.since ages - useGeneratedDiscount.setAllName(SessionContext, Map)
Sets names (in all languages)- Parameters:
ctx
- A SessionContext objectnames
- map with following combination key:language, value:name
-
setCode
public void setCode(SessionContext ctx, java.lang.String code) throws ConsistencyCheckException
Changes the code of this discount object.- Overrides:
setCode
in classGeneratedDiscount
- Parameters:
code
-- Throws:
ConsistencyCheckException
-
getValue
public java.lang.Double getValue(SessionContext ctx)
Description copied from class:GeneratedDiscount
Generated method - Getter of theDiscount.value
attribute.- Overrides:
getValue
in classGeneratedDiscount
- Returns:
- the value
-
getPriority
public java.lang.Integer getPriority(SessionContext ctx)
Description copied from class:GeneratedDiscount
Generated method - Getter of theDiscount.priority
attribute.- Overrides:
getPriority
in classGeneratedDiscount
- Returns:
- the priority
-
addOrder
@Deprecated public void addOrder(AbstractOrder order)
Deprecated.since ages - useGeneratedDiscount.addToOrders(AbstractOrder)
Assigns this discount to the given order. All previously assigned orders will stay assigned.- Parameters:
order
- the order to assign this discount to
-
removeOrder
@Deprecated public void removeOrder(AbstractOrder order)
Deprecated.since ages - useGeneratedDiscount.removeFromOrders(AbstractOrder)
Removes this discount from the given order. All other order assignments stay unchanged.- Parameters:
order
- the order to remove this discount from
-
getDiscountValue
public DiscountValue getDiscountValue(AbstractOrder order)
Calculates avalue
which should be applied to the given order during (re)calculation.- Parameters:
order
- the order which is currently being calculated
-
notifyOrderCalculated
public void notifyOrderCalculated(AbstractOrder order)
Notifies this discount if an order which it is assigned to has been calculated.This method does nothing by default and is intended to be overridden to implement e.g. discount tracking.
- Parameters:
order
- the order which owns the applied value of this discount
-
notifyOrderRemoval
public void notifyOrderRemoval(AbstractOrder order)
Called just before a order is about to be removed. This method does nothing by default and is intended to be overridden to implement e.g. discount tracking.- Parameters:
order
- the order which is going to be removed
-
isAbsolute
public java.lang.Boolean isAbsolute(SessionContext ctx)
Description copied from class:GeneratedDiscount
Generated method - Getter of theDiscount.absolute
attribute.- Specified by:
isAbsolute
in classGeneratedDiscount
- Returns:
- the absolute
-
getDiscountString
public java.lang.String getDiscountString(SessionContext ctx)
Description copied from class:GeneratedDiscount
Generated method - Getter of theDiscount.discountString
attribute.- Specified by:
getDiscountString
in classGeneratedDiscount
- Returns:
- the discountString
-
getDiscountstring
@Deprecated protected java.lang.String getDiscountstring()
Deprecated.since ages - useGeneratedDiscount.getDiscountString()
-
-