Class Restriction

All Implemented Interfaces:
Serializable, Comparable
Direct Known Subclasses:
GeneratedDateRestriction, GeneratedNewCustomerRestriction, GeneratedOrderRestriction, GeneratedProductRestriction, GeneratedRegularCustomerOrderQuantityRestriction, GeneratedRegularCustomerOrderTotalRestriction, GeneratedUserRestriction

public abstract class Restriction extends GeneratedRestriction
The [y] hybris Platform voucher extension enables users to assign a set of restrictions to a voucher for confining the usage of it. A combination of none, one, or many of the restrictions is possible. Developers can implement other restrictions in addition to those already there.

In an order containing multiple items, (percentage) discounts will apply only to the products that match all of the criteria given by its assigned restrictions. The other products in the order are not discounted. Vouchers provide an interface for getting the eligible entries within an given order.

See Also:
  • Constructor Details

    • Restriction

      public Restriction()
  • Method Details

    • getAllRestrictionType

      public Map getAllRestrictionType(SessionContext ctx)
      Returns a map containing all localized names of the type of this restriction.
      Specified by:
      getAllRestrictionType in class GeneratedRestriction
      Parameters:
      ctx - the context of the actual session
      Returns:
      a Map associating String objects as values to Language objects as keys.
    • getApplicableEntries

      public VoucherEntrySet getApplicableEntries(AbstractOrder anOrder)
    • getDescription

      public String getDescription(SessionContext ctx)
      Returns a description for this restriction. To get a more specific description, this method replaces all place holders in the localized description returned by super.getDescription(SessionContext) by the values returned by getMessageAttributeValues().
      Overrides:
      getDescription in class GeneratedRestriction
      Returns:
      a description for this restriction.
    • getRestrictionType

      public String getRestrictionType(SessionContext ctx)
      Convenience method. Returns the localized name of the type of this restriction, equivalent to getComposedType().getName().
      Specified by:
      getRestrictionType in class GeneratedRestriction
      Parameters:
      ctx - the context of the actual session.
      Returns:
      the locaalized name of this restriction's type.
    • getViolationMessage

      public final String getViolationMessage(SessionContext ctx)
      Returns a message explaining on what terms this restriction is fulfilled. To get a more specific violation message, this method replaces all place holders in the localized message returned by super.getViolationMessage(SessionContext) by the values returned by getMessageAttributeValues().
      Overrides:
      getViolationMessage in class GeneratedRestriction
      Returns:
      a message explaining on what terms this restriction is fulfilled.
    • getMessageAttributeValues

      protected String[] getMessageAttributeValues()
      Returns the values for making violation messages more useful.
    • isFulfilled

      public final boolean isFulfilled(AbstractOrder anOrder)
      Returns true if the specified abstract order is not null and fulfills this restriction.
      Parameters:
      anOrder - the abstract order to check whether it fullfills this restriction.
      Returns:
      true if the specified abstract order is not null and fulfills this restriction, false else.
    • isFulfilled

      public final boolean isFulfilled(Product aProduct)
      Returns true if the specified product is not null and fulfills this restriction.
      Parameters:
      aProduct - the product to check whether it fullfills this restriction.
      Returns:
      true if the specified product is not null and fulfills this restriction, false else.
    • isFulfilledInternal

      protected abstract boolean isFulfilledInternal(AbstractOrder anOrder)
      Returns true if the specified abstract order fulfills this restriction.
      Parameters:
      anOrder - the abstract order to check whether it fullfills this restriction.
      Returns:
      true if the specified abstract order fulfills this restriction, false else.
    • isFulfilledInternal

      protected abstract boolean isFulfilledInternal(Product aProduct)
      Returns true if the specified product fulfills this restriction.
      Parameters:
      aProduct - the product to check whether it fullfills this restriction.
      Returns:
      true if the specified product fulfills this restriction, false else.