Class DefaultPlatformFieldSearchFacadeStrategy<T extends ItemModel>

java.lang.Object
com.hybris.backoffice.cockpitng.dataaccess.facades.search.DefaultPlatformFieldSearchFacadeStrategy<T>
All Implemented Interfaces:
com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacade<T>, com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacadeStrategy<T>
Direct Known Subclasses:
DefaultYFormsFieldSearchFacadeStrategy

public class DefaultPlatformFieldSearchFacadeStrategy<T extends ItemModel> extends Object implements com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacadeStrategy<T>
Platform specific implementation of FieldSearchFacadeStrategy

  • Field Details

    • STRATEGY_NAME

      public static final String STRATEGY_NAME
      Strategy name to be used in configuration when preferred search strategy is to be changed
      See Also:
    • ATTRIBUTE_PERMISSION_CHECK_PROPERTY

      public static final String ATTRIBUTE_PERMISSION_CHECK_PROPERTY
      See Also:
    • BACKOFFICE_SEARCH_READ_REPLICA_TYPE_CODES_EXCLUDE

      public static final String BACKOFFICE_SEARCH_READ_REPLICA_TYPE_CODES_EXCLUDE
      See Also:
    • BACKOFFICE_SEARCH_READ_REPLICA_ENABLED

      public static final String BACKOFFICE_SEARCH_READ_REPLICA_ENABLED
      See Also:
    • BACKOFFICE_CACHE_ON_READ_REPLICA_ENABLED

      public static final String BACKOFFICE_CACHE_ON_READ_REPLICA_ENABLED
      See Also:
  • Constructor Details

    • DefaultPlatformFieldSearchFacadeStrategy

      public DefaultPlatformFieldSearchFacadeStrategy()
  • Method Details

    • canHandle

      public boolean canHandle(String typeCode)
      Specified by:
      canHandle in interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacadeStrategy<T extends ItemModel>
    • search

      public com.hybris.cockpitng.search.data.pageable.Pageable search(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
      Specified by:
      search in interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacade<T extends ItemModel>
    • searchInternal

      protected com.hybris.cockpitng.search.data.pageable.Pageable searchInternal(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
    • adjustSearchQuery

      protected com.hybris.cockpitng.search.data.SearchQueryData adjustSearchQuery(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
      This method allows filtering or altering the search data before the real query will be passed to the search engine.
      Parameters:
      searchQueryData - query to adjust
    • createSearchQueryDataBuilderWithAttributes

      protected com.hybris.backoffice.widgets.advancedsearch.engine.AdvancedSearchQueryData.Builder createSearchQueryDataBuilderWithAttributes(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
    • parseSearchQueryAttributes

      protected List<com.hybris.cockpitng.search.data.SearchQueryCondition> parseSearchQueryAttributes(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
    • excludeNoReadPermissionSubTypes

      protected void excludeNoReadPermissionSubTypes(List<com.hybris.cockpitng.search.data.SearchQueryCondition> conditions, com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
      Security threat issue: https://cxjira.sap.com/browse/DRB-450 | Type level permission | Type/Subtype | To exclude unauthorized subtype from search results. |
      Parameters:
      conditions -
      searchQueryData -
    • isNeedToExcludeNoReadPermissionSubType

      protected boolean isNeedToExcludeNoReadPermissionSubType(String typeCode, List<com.hybris.cockpitng.search.data.SearchQueryCondition> conditions)
      Security threat issue: https://cxjira.sap.com/browse/ECP-5491 | Attribute/type level permission | Type/Subtype | To exclude subtype from search results if any following conditions match: 1. No read permission for subtype 2. If attribute level permission check enabled and the search condition contains at least one unauthorized attribute of this subtype.
      Parameters:
      typeCode -
      conditions -
    • isAttributePermissionCheckEnabled

      protected boolean isAttributePermissionCheckEnabled()
    • buildQuery

      protected GenericSearchQuery buildQuery(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
      Uses GenericQuery to build flexible search query based on SearchQueryData information.
      Parameters:
      searchQueryData -
      Returns:
      String representing flexible search query
    • joinConditionsWithFilteringConditions

      protected Optional<GenericCondition> joinConditionsWithFilteringConditions(GenericConditionList conditionList, GenericConditionList filteringConditionList)
    • createSortCondition

      protected GenericSearchOrderBy createSortCondition(GenericQuery query, String typeCode, com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
    • createEnumSortOrder

      protected GenericSearchOrderBy createEnumSortOrder(GenericQuery query, String sortType, String qualifier, boolean asc)
    • sorEnumByLocalizedNameEnabled

      protected boolean sorEnumByLocalizedNameEnabled()
    • getConditionsOperator

      protected Operator getConditionsOperator(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData)
      Returns logical operator which joins query conditions (or, and)
      Parameters:
      searchQueryData -
      Returns:
      OR operator
    • isSortable

      public boolean isSortable(com.hybris.cockpitng.dataaccess.facades.type.DataType type, String attributeQualifier, com.hybris.cockpitng.dataaccess.context.Context context)
      Specified by:
      isSortable in interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacade<T extends ItemModel>
    • getConfigurationService

      public ConfigurationService getConfigurationService()
    • setConfigurationService

      public void setConfigurationService(ConfigurationService configurationService)
    • getGenericSearchService

      protected GenericSearchService getGenericSearchService()
    • setGenericSearchService

      public void setGenericSearchService(GenericSearchService genericSearchService)
    • getTypeService

      public TypeService getTypeService()
    • setTypeService

      public void setTypeService(TypeService typeService)
    • setPlatformFacadeStrategyHandleCache

      public void setPlatformFacadeStrategyHandleCache(PlatformFacadeStrategyHandleCache platformFacadeStrategyHandleCache)
    • setCommonI18NService

      public void setCommonI18NService(CommonI18NService commonI18NService)
    • setCockpitProperties

      public void setCockpitProperties(com.hybris.cockpitng.core.util.CockpitProperties cockpitProperties)
    • getCockpitProperties

      protected com.hybris.cockpitng.core.util.CockpitProperties getCockpitProperties()
    • getPermissionFacade

      protected com.hybris.cockpitng.dataaccess.facades.permissions.PermissionFacade getPermissionFacade()
    • setPermissionFacade

      public void setPermissionFacade(com.hybris.cockpitng.dataaccess.facades.permissions.PermissionFacade permissionFacade)
    • setGenericMultiConditionQueryBuilder

      public void setGenericMultiConditionQueryBuilder(ConditionQueryBuilder genericMultiConditionQueryBuilder)
    • getStrategyName

      public String getStrategyName()
      Specified by:
      getStrategyName in interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacadeStrategy<T extends ItemModel>
    • getDeletedItemCache

      public BackofficeDeletedItemCache getDeletedItemCache()
    • setDeletedItemCache

      public void setDeletedItemCache(BackofficeDeletedItemCache deletedItemCache)