Class AbstractProductConfigController

Direct Known Subclasses:
AbstractConfigurationOverviewController, AddConfigToCartController, AnalyticsController, CartConfigureProductController, ConfigureProductController, PricingController, SearchSimilarVariantsController, UpdateConfigureProductController

public abstract class AbstractProductConfigController extends AbstractPageController
Abstract base class for all CPQ UI controllers.
  • Field Details

  • Constructor Details

    • AbstractProductConfigController

      public AbstractProductConfigController()
  • Method Details

    • initBinderConfigData

      @InitBinder("config") protected void initBinderConfigData(org.springframework.web.bind.WebDataBinder binder)
    • getBindingResultForConfigAndSaveUiStatus

      protected org.springframework.validation.BindingResult getBindingResultForConfigAndSaveUiStatus(ConfigurationData configData, UiStatus uiStatus)
    • getBindingResultForConfiguration

      protected org.springframework.validation.BindingResult getBindingResultForConfiguration(ConfigurationData configData, UiStatus uiStatus)
    • logConfigurationCheckDeviation

      protected void logConfigurationCheckDeviation(org.springframework.validation.BindingResult errors, ConfigurationData configData)
      The ConflictChecker checks only visible characteristics for consistency and completeness as only those characteristics might be changed by the user.

      If the model is modeled in a way that a conflict appears for an invisible characteristic or an invisible characteristic is mandatory but not filled this would not be identified by those checks but the overall configuration status is not consistent/complete. This leads to a situation where the configuration cannot be sent to the backend system.

      In this case the modeler needs to improve the model to avoid such situations. The user cannot do anything about this so this is only logged as an error as a hint for the modeler.
    • setCartEntryLinks

      protected void setCartEntryLinks(ConfigurationData configData)
    • getCartItemByProductCode

      protected String getCartItemByProductCode(String productCode)
    • getCartItemByConfigId

      protected String getCartItemByConfigId(String configId)
    • isConfigLinkedToCart

      protected boolean isConfigLinkedToCart(String configId)
    • getCartEntryNumber

      protected Integer getCartEntryNumber(String productCode) throws BusinessException
      Throws:
      BusinessException
    • getUiStatusForConfig

      protected UiStatus getUiStatusForConfig(ConfigurationData configData)
    • setUiStatusForConfig

      protected void setUiStatusForConfig(ConfigurationData configData, UiStatus uiStatus)
    • getUiStatusForConfigId

      protected UiStatus getUiStatusForConfigId(String configId)
    • getCartEntryNumber

      protected Integer getCartEntryNumber(AbstractOrderData orderData, String configId) throws BusinessException
      Throws:
      BusinessException
    • loadNewConfiguration

      protected ConfigurationData loadNewConfiguration(KBKeyData kbKey)
    • initializeUiStatus

      protected UiStatus initializeUiStatus(ConfigurationData configData)
    • reloadConfigurationByKBKey

      protected ConfigurationData reloadConfigurationByKBKey(KBKeyData kbKey, UiStatus uiStatus)
    • reloadConfigurationById

      protected ConfigurationData reloadConfigurationById(String configId, KBKeyData kbKey, UiStatus uiStatus)
    • afterReloadConfiguration

      protected ConfigurationData afterReloadConfiguration(ConfigurationData configData, UiStatus uiStatus)
    • logLoadConfig

      protected void logLoadConfig(ConfigurationData configData, String action)
    • populateProductData

      protected ProductData populateProductData(String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request)
    • populateCMSAttributes

      protected void populateCMSAttributes(org.springframework.ui.Model model) throws CMSItemNotFoundException
      Throws:
      CMSItemNotFoundException
    • getPageId

      protected String getPageId()
    • getPageType

      protected String getPageType()
    • populateProductDetailForDisplay

      protected ProductData populateProductDetailForDisplay(String productCode, org.springframework.ui.Model model)
    • getProductDataForProductCode

      protected ProductData getProductDataForProductCode(String productCode)
    • populateProductData

      protected void populateProductData(ProductData productData, org.springframework.ui.Model model)
    • getGalleryImages

      protected List<Map<String,ImageData>> getGalleryImages(ProductData productData)
    • cleanUpSessionAttribute

      protected void cleanUpSessionAttribute(String productCode)
    • removeNullCsticsFromGroup

      protected void removeNullCsticsFromGroup(List<CsticData> dirtyList)
    • removeNullCstics

      protected void removeNullCstics(List<UiGroupData> groups)
    • handleRequestContext

      protected void handleRequestContext(javax.servlet.http.HttpServletRequest request, String productCode)
    • logModelmetaData

      protected void logModelmetaData(ConfigurationData configData)
    • logRequestMetaData

      protected void logRequestMetaData(ConfigurationData configData, javax.servlet.http.HttpServletRequest request)
    • updatePageTitle

      protected void updatePageTitle(String productCode, org.springframework.ui.Model model)
    • getConfigFacade

      protected ConfigurationFacade getConfigFacade()
    • getConfigCartFacade

      protected ConfigurationCartIntegrationFacade getConfigCartFacade()
    • getSessionAccessFacade

      protected SessionAccessFacade getSessionAccessFacade()
    • getProductConfigurationValidator

      protected org.springframework.validation.Validator getProductConfigurationValidator()
    • getProductConfigurationConflictChecker

      protected ConflictChecker getProductConfigurationConflictChecker()
    • getProductFacade

      protected ProductFacade getProductFacade()
    • getProductService

      protected ProductService getProductService()
    • getOrderEntry

      protected OrderEntryData getOrderEntry(int entryNumber, AbstractOrderData abstractOrder) throws BusinessException
      Throws:
      BusinessException
    • getOrderEntry

      protected Optional<OrderEntryData> getOrderEntry(String cartItemKey, AbstractOrderData abstractOrder) throws BusinessException
      Throws:
      BusinessException
    • getProductCodeForCartItem

      protected String getProductCodeForCartItem(String cartItemKey) throws BusinessException
      Throws:
      BusinessException
    • getBreadcrumbBuilder

      protected ProductConfigureBreadcrumbBuilder getBreadcrumbBuilder()
    • setConfigFacade

      public void setConfigFacade(ConfigurationFacade configFacade)
      Parameters:
      configFacade - CPQ facade
    • setConfigCartFacade

      public void setConfigCartFacade(ConfigurationCartIntegrationFacade configCartFacade)
      Parameters:
      configCartFacade - CPQ cart integration facade
    • setSessionAccessFacade

      public void setSessionAccessFacade(SessionAccessFacade sessionAccessFacade)
      Parameters:
      sessionAccessFacade - CPQ session cache access
    • getAbstractOrderEntryLinkStrategy

      protected ConfigurationAbstractOrderEntryLinkStrategy getAbstractOrderEntryLinkStrategy()
    • setAbstractOrderEntryLinkStrategy

      public void setAbstractOrderEntryLinkStrategy(ConfigurationAbstractOrderEntryLinkStrategy configurationAbstractOrderEntryLinkStrategy)
    • setProductConfigurationValidator

      public void setProductConfigurationValidator(org.springframework.validation.Validator productConfigurationValidator)
      Parameters:
      productConfigurationValidator - CPQ validator
    • setProductConfigurationConflictChecker

      public void setProductConfigurationConflictChecker(ConflictChecker productConfigurationConflictChecker)
      Parameters:
      productConfigurationConflictChecker - status and UI error handling&checking
    • setProductFacade

      public void setProductFacade(ProductFacade productFacade)
      Parameters:
      productFacade - for accessing product master data
    • setProductService

      public void setProductService(ProductService productService)
      Parameters:
      productService - for accessing product related service
    • setBreadcrumbBuilder

      public void setBreadcrumbBuilder(ProductConfigureBreadcrumbBuilder productConfigurationBreadcrumbBuilder)
      Parameters:
      productConfigurationBreadcrumbBuilder - for building UI breadcrumbs
    • getUiRecorder

      protected UiTrackingRecorder getUiRecorder()
    • setUiRecorder

      public void setUiRecorder(UiTrackingRecorder uiRecorder)
      Parameters:
      uiRecorder - triggering CPQ tracking
    • isConfigRemoved

      protected boolean isConfigRemoved(String productCode)
    • getSessionId

      protected String getSessionId()
    • getConfigurationErrorHandler

      public ConfigErrorHandler getConfigurationErrorHandler()
      Returns:
      configuration error handler
    • setConfigurationErrorHandler

      public void setConfigurationErrorHandler(ConfigErrorHandler configurationErrorHandler)
      Parameters:
      configurationErrorHandler - for handling configuration errors
    • getUiStateHandler

      protected UiStateHandler getUiStateHandler()
    • setUiStateHandler

      public void setUiStateHandler(UiStateHandler uiStateHandler)
      Parameters:
      uiStateHandler - UI state handler
    • getUiStatusSync

      protected UiStatusSync getUiStatusSync()
    • setUiStatusSync

      public void setUiStatusSync(UiStatusSync uiStatusSync)
      Parameters:
      uiStatusSync - UI status sync
    • getProductLinkStrategy

      protected ConfigurationProductLinkStrategy getProductLinkStrategy()
    • setProductLinkStrategy

      public void setProductLinkStrategy(ConfigurationProductLinkStrategy configurationProductLinkStrategy)
    • getCartFacade

      protected CartFacade getCartFacade()
    • setCartFacade

      public void setCartFacade(CartFacade cartFacade)