Class TmaAbstractProcessFlowStrategy

java.lang.Object
de.hybris.platform.b2ctelcofacades.strategy.impl.TmaAbstractProcessFlowStrategy
All Implemented Interfaces:
TmaProcessFlowStrategy
Direct Known Subclasses:
TmaRetentionStrategy, TmaTariffChangeStrategy

public abstract class TmaAbstractProcessFlowStrategy extends Object implements TmaProcessFlowStrategy
Base class for particular strategies' implementations.
Since:
6.7
  • Field Details

  • Constructor Details

    • TmaAbstractProcessFlowStrategy

      public TmaAbstractProcessFlowStrategy(de.hybris.platform.servicelayer.user.UserService userService)
  • Method Details

    • getRequiredProducts

      protected abstract Set<TmaProductOfferingModel> getRequiredProducts(String requiredProductCode)
      Creates a Set of TmaProductOfferingModel required products, used for obtaining price override.
      Parameters:
      requiredProductCode - code of the required product
      Returns:
      a Set of TmaProductOfferingModel
    • getRequiredProducts

      protected abstract Set<TmaProductOfferingModel> getRequiredProducts(Set<String> requiredProductCodes)
      Creates a Set of TmaProductOfferingModel required products, used for obtaining price override.
      Parameters:
      requiredProductCodes - codes of the required products
      Returns:
      a Set of TmaProductOfferingModel
    • getProduct

      protected ProductData getProduct(String productCode)
    • getBpo

      protected ProductData getBpo(String bpoCode)
    • setProductPriceFromBpo

      protected void setProductPriceFromBpo(String productCode, String bpoCode, Set<String> requiredProductCode, ProductData productData)
    • setProductPriceFromBpo

      protected void setProductPriceFromBpo(TmaOfferContextData offerContextData, ProductData productData)
      Sets the mainSpoPriceInBpo for the productData provided to the lowestPrice applicable.
      Parameters:
      offerContextData - contains the parameters for the offer
      productData - the productData for which the price will be set
    • hasSubscriptionTerm

      protected boolean hasSubscriptionTerm(TmaProductOfferingModel product, TmaBundledProductOfferingModel parentBpo, TmaProcessType processType, String subscriptionTermId)
      Checks if the provided subscription term is in the prices of the productOffering, parentBpo and processType provided.
      Parameters:
      product - the product
      parentBpo - the parent of the product
      processType - the process type
      subscriptionTermId - the identifier of the subscription term
      Returns:
      True if provided subscription term is in the prices of the product and its parent, otherwise false.
    • getProcessTypeFromSession

      protected TmaProcessType getProcessTypeFromSession()
    • getProductOfferFacade

      protected TmaProductOfferFacade getProductOfferFacade()
    • setProductOfferFacade

      public void setProductOfferFacade(TmaProductOfferFacade productOfferFacade)
    • getPoService

      protected TmaPoService getPoService()
    • setPoService

      public void setPoService(TmaPoService poService)
    • getSessionService

      protected de.hybris.platform.servicelayer.session.SessionService getSessionService()
    • setSessionService

      public void setSessionService(de.hybris.platform.servicelayer.session.SessionService sessionService)
    • getTmaPriceFacade

      protected TmaPriceFacade getTmaPriceFacade()
    • setTmaPriceFacade

      public void setTmaPriceFacade(TmaPriceFacade tmaPriceFacade)
    • getTmaOfferConverter

      protected de.hybris.platform.servicelayer.dto.converter.Converter<ProductData,TmaOfferData> getTmaOfferConverter()
    • setTmaOfferConverter

      public void setTmaOfferConverter(de.hybris.platform.servicelayer.dto.converter.Converter<ProductData,TmaOfferData> tmaOfferConverter)
    • getSubscriptionTermService

      protected TmaSubscriptionTermService getSubscriptionTermService()
    • setSubscriptionTermService

      public void setSubscriptionTermService(TmaSubscriptionTermService subscriptionTermService)
    • getUserService

      public de.hybris.platform.servicelayer.user.UserService getUserService()