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 Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringStrategy name to be used in configuration when preferred search strategy is to be changedFields inherited from interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacadeStrategy
CONTEXT_ORIGINAL_QUERY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected com.hybris.cockpitng.search.data.SearchQueryDataadjustSearchQuery(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.protected GenericSearchQuerybuildQuery(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) UsesGenericQueryto build flexible search query based onSearchQueryDatainformation.booleanprotected GenericSearchOrderBycreateEnumSortOrder(GenericQuery query, String sortType, String qualifier, boolean asc) protected com.hybris.backoffice.widgets.advancedsearch.engine.AdvancedSearchQueryData.BuildercreateSearchQueryDataBuilderWithAttributes(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) protected GenericSearchOrderBycreateSortCondition(GenericQuery query, String typeCode, com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) protected voidexcludeNoReadPermissionSubTypes(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.protected com.hybris.cockpitng.core.util.CockpitPropertiesprotected OperatorgetConditionsOperator(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) Returns logical operator which joins query conditions (or, and)protected GenericSearchServiceprotected com.hybris.cockpitng.dataaccess.facades.permissions.PermissionFacadeprotected booleanprotected booleanisNeedToExcludeNoReadPermissionSubType(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.booleanisSortable(com.hybris.cockpitng.dataaccess.facades.type.DataType type, String attributeQualifier, com.hybris.cockpitng.dataaccess.context.Context context) protected Optional<GenericCondition>joinConditionsWithFilteringConditions(GenericConditionList conditionList, GenericConditionList filteringConditionList) protected List<com.hybris.cockpitng.search.data.SearchQueryCondition>parseSearchQueryAttributes(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) com.hybris.cockpitng.search.data.pageable.Pageablesearch(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) protected com.hybris.cockpitng.search.data.pageable.PageablesearchInternal(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) voidsetCockpitProperties(com.hybris.cockpitng.core.util.CockpitProperties cockpitProperties) voidsetCommonI18NService(CommonI18NService commonI18NService) voidsetConfigurationService(ConfigurationService configurationService) voidsetDeletedItemCache(BackofficeDeletedItemCache deletedItemCache) voidsetGenericMultiConditionQueryBuilder(ConditionQueryBuilder genericMultiConditionQueryBuilder) voidsetGenericSearchService(GenericSearchService genericSearchService) voidsetPermissionFacade(com.hybris.cockpitng.dataaccess.facades.permissions.PermissionFacade permissionFacade) voidsetPlatformFacadeStrategyHandleCache(PlatformFacadeStrategyHandleCache platformFacadeStrategyHandleCache) voidsetTypeService(TypeService typeService) protected booleanMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacade
searchMethods inherited from interface com.hybris.cockpitng.dataaccess.facades.search.FieldSearchFacadeStrategy
canHandle, useOrForGlobalOperator
-
Field Details
-
STRATEGY_NAME
Strategy name to be used in configuration when preferred search strategy is to be changed- See Also:
-
ATTRIBUTE_PERMISSION_CHECK_PROPERTY
- See Also:
-
BACKOFFICE_SEARCH_READ_REPLICA_TYPE_CODES_EXCLUDE
- See Also:
-
BACKOFFICE_SEARCH_READ_REPLICA_ENABLED
- See Also:
-
BACKOFFICE_CACHE_ON_READ_REPLICA_ENABLED
- See Also:
-
-
Constructor Details
-
DefaultPlatformFieldSearchFacadeStrategy
public DefaultPlatformFieldSearchFacadeStrategy()
-
-
Method Details
-
canHandle
-
search
public com.hybris.cockpitng.search.data.pageable.Pageable search(com.hybris.cockpitng.search.data.SearchQueryData searchQueryData) -
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) UsesGenericQueryto build flexible search query based onSearchQueryDatainformation.- 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) -
getConfigurationService
-
setConfigurationService
-
getGenericSearchService
-
setGenericSearchService
-
getTypeService
-
setTypeService
-
setPlatformFacadeStrategyHandleCache
public void setPlatformFacadeStrategyHandleCache(PlatformFacadeStrategyHandleCache platformFacadeStrategyHandleCache) -
setCommonI18NService
-
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
-
getDeletedItemCache
-
setDeletedItemCache
-