Package de.hybris.platform.voucher.jalo
Class PromotionVoucher
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable
public class PromotionVoucher extends GeneratedPromotionVoucher
A promotion voucher can be redeemed once or more times up to a user-defined limit. It provides just one arbitrary, user-defined voucher code (ID) to enable promotions with easily rememberable code tokens, such as "VINEGLAS". Moreover promotion vouchers share a lot of functionality with the serial vouchers and therefore have attributes like the voucher value, the discount type, the free shipping option and the restrictions.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.hybris.platform.voucher.jalo.Voucher
Voucher.InvalidVoucherKeyException
-
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 inherited from class de.hybris.platform.voucher.jalo.GeneratedPromotionVoucher
DEFAULT_INITIAL_ATTRIBUTES, REDEMPTIONQUANTITYLIMIT, REDEMPTIONQUANTITYLIMITPERUSER, VOUCHERCODE
-
Fields inherited from class de.hybris.platform.voucher.jalo.Voucher
CODELENGTH, DIVIDER, LENGTH_CODE
-
Fields inherited from class de.hybris.platform.voucher.jalo.GeneratedVoucher
DESCRIPTION, FREESHIPPING, INVALIDATIONS, INVALIDATIONSHANDLER, RESTRICTIONS, RESTRICTIONSHANDLER, VALUESTRING
-
Fields inherited from class de.hybris.platform.jalo.order.price.Discount
EXTERNAL_KEY, GLOBAL, VALUE_END, VALUE_START
-
Fields inherited from class de.hybris.platform.jalo.order.price.GeneratedDiscount
ABSOLUTE, CODE, CURRENCY, 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 PromotionVoucher()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkVoucherCode(java.lang.String aVoucherCode)
Returns true if the specified voucher code is valid for this voucher.protected Item
createItem(SessionContext ctx, ComposedType type, Item.ItemAttributeMap allAttributes)
Has to be implemented for each concrete subtype of item.protected int
getNextVoucherNumber(SessionContext ctx)
boolean
isReservable(java.lang.String aVoucherCode, User user)
void
setVoucherCode(SessionContext ctx, java.lang.String param)
Generated method - Setter of thePromotionVoucher.voucherCode
attribute.-
Methods inherited from class de.hybris.platform.voucher.jalo.GeneratedPromotionVoucher
getDefaultAttributeModes, getRedemptionQuantityLimit, getRedemptionQuantityLimit, getRedemptionQuantityLimitAsPrimitive, getRedemptionQuantityLimitAsPrimitive, getRedemptionQuantityLimitPerUser, getRedemptionQuantityLimitPerUser, getRedemptionQuantityLimitPerUserAsPrimitive, getRedemptionQuantityLimitPerUserAsPrimitive, getVoucherCode, getVoucherCode, setRedemptionQuantityLimit, setRedemptionQuantityLimit, setRedemptionQuantityLimit, setRedemptionQuantityLimit, setRedemptionQuantityLimitPerUser, setRedemptionQuantityLimitPerUser, setRedemptionQuantityLimitPerUser, setRedemptionQuantityLimitPerUser, setVoucherCode
-
Methods inherited from class de.hybris.platform.voucher.jalo.Voucher
createAndStoreKey, createVoucherInvalidation, generateVoucherCode, getApplicableEntries, getApplicableValue, getAppliedValue, getComposedType, getDiscountValue, getInvalidation, getInvalidations, getInvalidations, getValueString, getViolatedRestrictions, getViolatedRestrictions, getViolationMessages, getViolationMessages, getVoucherNumber, getVoucherValue, insertDividers, isApplicable, isApplicable, isReservable, redeem, redeem, release, release, remove, removeDividers, removeInvalidations, reserve, threeByteSig
-
Methods inherited from class de.hybris.platform.voucher.jalo.GeneratedVoucher
addToInvalidations, addToInvalidations, addToRestrictions, addToRestrictions, getAllDescription, getAllDescription, getDescription, getDescription, getInvalidations, getInvalidations, getRestrictions, getRestrictions, getValueString, isFreeShipping, isFreeShipping, isFreeShippingAsPrimitive, isFreeShippingAsPrimitive, removeFromInvalidations, removeFromInvalidations, removeFromRestrictions, removeFromRestrictions, setAllDescription, setAllDescription, setDescription, setDescription, setFreeShipping, setFreeShipping, setFreeShipping, setFreeShipping, setInvalidations, setInvalidations, setRestrictions, setRestrictions
-
Methods inherited from class de.hybris.platform.jalo.order.price.Discount
addOrder, getAllNames, getDiscountstring, getDiscountString, getPriority, getValue, isAbsolute, notifyOrderCalculated, notifyOrderRemoval, removeOrder, setAllNames, setCode
-
Methods inherited from class de.hybris.platform.jalo.order.price.GeneratedDiscount
addToOrders, addToOrders, getAllName, getAllName, getCode, getCode, getCurrency, getCurrency, 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, 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
-
-
-
-
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 classVoucher
- 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
-
checkVoucherCode
public boolean checkVoucherCode(java.lang.String aVoucherCode)
Description copied from class:Voucher
Returns true if the specified voucher code is valid for this voucher.- Specified by:
checkVoucherCode
in classVoucher
- Parameters:
aVoucherCode
- the voucher code to check validity of.- Returns:
- true if the specified voucher code is valid for this voucher, false else.
-
getNextVoucherNumber
protected int getNextVoucherNumber(SessionContext ctx)
- Specified by:
getNextVoucherNumber
in classVoucher
-
isReservable
public boolean isReservable(java.lang.String aVoucherCode, User user)
- Specified by:
isReservable
in classVoucher
-
setVoucherCode
public void setVoucherCode(SessionContext ctx, java.lang.String param)
Description copied from class:GeneratedPromotionVoucher
Generated method - Setter of thePromotionVoucher.voucherCode
attribute.- Overrides:
setVoucherCode
in classGeneratedPromotionVoucher
param
- the voucherCode - the voucher code.
-
-