Class DefaultMenuService<P extends Menu>
- java.lang.Object
-
- com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
-
- com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
-
- com.broadleafcommerce.menu.service.DefaultMenuService<P>
-
- All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>,com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>,MenuService<P>
public class DefaultMenuService<P extends Menu> extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P> implements MenuService<P>
- Author:
- Samarth Dhruva (samarthd)
-
-
Field Summary
Fields Modifier and Type Field Description static StringCACHE_BY_MENU
-
Constructor Summary
Constructors Constructor Description DefaultMenuService(MenuRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, MenuItemService<MenuItem> menuItemService, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node> parser)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MenuItemService<? extends MenuItem>getMenuItemService()NavigableMenugetMenuWithNavigationTree(String menuName, int depthLimit, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Accepts a menu name and returns the menu with itssubmenufully populated.protected MenuRepository<com.broadleafcommerce.data.tracking.core.Trackable>getRepository()StringgetRepositoryDomain()protected com.broadleafcommerce.common.extension.TypeFactorygetTypeFactory()org.springframework.data.domain.Page<P>readAllByName(String nameQuery, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Read all menus, optionally filtered by name.Optional<P>readByName(String menuName, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Finds the menu with the given name (should only be one result, as menu names are unique).-
Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService
getRsqlHelper, readAll, readAll, readAll, readAll
-
Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService
convertFromPersistentDomain, convertToPersistentDomain, create, createAll, createAllAllowingPartialSuccess, delete, getHelper, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, setSortPositionStrategy, update, updateAll, updateAllAllowingPartialSuccess, updateSort
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService
create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSort
-
-
-
-
Field Detail
-
CACHE_BY_MENU
public static final String CACHE_BY_MENU
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DefaultMenuService
public DefaultMenuService(MenuRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, MenuItemService<MenuItem> menuItemService, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.extension.TypeFactory typeFactory, com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node> parser)
-
-
Method Detail
-
readAllByName
public org.springframework.data.domain.Page<P> readAllByName(@Nullable String nameQuery, @NonNull cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:MenuServiceRead all menus, optionally filtered by name.- Specified by:
readAllByNamein interfaceMenuService<P extends Menu>- Parameters:
nameQuery- (optional) the menu name to filter byfilters- additional filters to apply in the query, can be nullpage- the requested page of results from the databasecontext- context information surrounding sandboxing and multitenant state- Returns:
- all menus, optionally filtered by name
-
readByName
public Optional<P> readByName(@NonNull String menuName, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:MenuServiceFinds the menu with the given name (should only be one result, as menu names are unique).- Specified by:
readByNamein interfaceMenuService<P extends Menu>- Parameters:
menuName- the menu name of the menu that should be retrievedcontextInfo- context information surrounding sandboxing and multitenant state- Returns:
- an
Optionalcontaining the menu with the given name, empty if not found
-
getMenuWithNavigationTree
@Cacheable(value="menuCacheByMenu", keyGenerator="menuCacheByMenu", condition="@cacheStateManager.isEnabled(#root.caches, #root.args)") public NavigableMenu getMenuWithNavigationTree(@NonNull String menuName, int depthLimit, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Description copied from interface:MenuServiceAccepts a menu name and returns the menu with itssubmenufully populated.- Specified by:
getMenuWithNavigationTreein interfaceMenuService<P extends Menu>- Parameters:
menuName- the name of the menu whose navigation tree should be returneddepthLimit- the output will be limited to only the topdepthLimitlevels of the tree. This should generally be at least 1 to return any sub menus. Negative values return the entire hierarchy, and 0 returns no sub menus at allcontextInfo- context information surrounding sandboxing and multitenant state- Returns:
- the requested menu with its navigation tree, limited to the first
depthLimitlevels. Each level will be sorted by thedisplayOrderspecified in each item in that level.
-
getRepositoryDomain
public String getRepositoryDomain()
- Specified by:
getRepositoryDomainin interfaceMenuService<P extends Menu>
-
getRepository
@NonNull protected MenuRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()
-
getMenuItemService
@NonNull protected MenuItemService<? extends MenuItem> getMenuItemService()
-
getTypeFactory
@NonNull protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-
-