Class DefaultMenuItemService<P extends MenuItem>

  • All Implemented Interfaces:
    com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>, MenuItemService<P>

    public class DefaultMenuItemService<P extends MenuItem>
    extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
    implements MenuItemService<P>
    Author:
    Samarth Dhruva (samarthd)
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultMenuItemService​(MenuItemRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, 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 MenuItemRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()  
      String getRepositoryDomain()  
      org.springframework.data.domain.Page<P> readAllByLabelAndParentMenuId​(String labelQuery, String parentMenuId, boolean rootsOnly, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Read all menu items for a menu, optionally filtered by label (ignoring case).
      List<P> readAllByParentMenuId​(String parentMenuId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Read all menu items that are children (both direct and indirect) of the specified Menu.
      List<P> readAllByParentMenuItemId​(String parentMenuItemId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Read all menu items that are direct children of the specified MenuItem.
      MenuItemAncestorList readAncestors​(String menuItemId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Accepts a menu item ID and returns a payload object containing the requested menu item and a list of its ancestors.
      • 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 interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService

        create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSort
      • Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService

        readAll, readAll, readAll, readAll
    • Constructor Detail

      • DefaultMenuItemService

        public DefaultMenuItemService​(MenuItemRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository,
                                      com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper,
                                      com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node> parser)
    • Method Detail

      • readAllByLabelAndParentMenuId

        public org.springframework.data.domain.Page<P> readAllByLabelAndParentMenuId​(@Nullable
                                                                                     String labelQuery,
                                                                                     @NonNull
                                                                                     String parentMenuId,
                                                                                     boolean rootsOnly,
                                                                                     @Nullable
                                                                                     cz.jirutka.rsql.parser.ast.Node filters,
                                                                                     @Nullable
                                                                                     org.springframework.data.domain.Pageable page,
                                                                                     @Nullable
                                                                                     com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: MenuItemService
        Read all menu items for a menu, optionally filtered by label (ignoring case).
        Specified by:
        readAllByLabelAndParentMenuId in interface MenuItemService<P extends MenuItem>
        Parameters:
        labelQuery - (optional) the menu item label to filter by (ignoring case)
        parentMenuId - the context ID of the menu whose items should be returned
        rootsOnly - if true, restricts results to only the top-level menu items for the menu. Otherwise, returns all menu items for the menu.
        filters - additional filters to apply in the query, can be null
        page - the requested page of results from the database
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        all menu items, optionally filtered by name
      • readAllByParentMenuItemId

        public List<P> readAllByParentMenuItemId​(@NonNull
                                                 String parentMenuItemId,
                                                 @Nullable
                                                 com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: MenuItemService
        Read all menu items that are direct children of the specified MenuItem. In other words, find all menu items who have the given parentMenuItemId set as their MenuItem.getParentMenuItemId().
        Specified by:
        readAllByParentMenuItemId in interface MenuItemService<P extends MenuItem>
        Parameters:
        parentMenuItemId - the context ID of the MenuItem whose direct children should be returned
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        all the menu items which are direct children of the specified menu item
      • readAllByParentMenuId

        public List<P> readAllByParentMenuId​(@NonNull
                                             String parentMenuId,
                                             @Nullable
                                             com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: MenuItemService
        Read all menu items that are children (both direct and indirect) of the specified Menu. In other words, find all menu items who have the given parentMenuId set as their MenuItem.getParentMenuId(). This effectively returns the entire set of MenuItems that are in a menu's tree.
        Specified by:
        readAllByParentMenuId in interface MenuItemService<P extends MenuItem>
        Parameters:
        parentMenuId - the context ID of the Menu whose children should be returned
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        all the menu items which are children of the specified menu
      • readAncestors

        @NonNull
        public MenuItemAncestorList readAncestors​(@NonNull
                                                  String menuItemId,
                                                  @Nullable
                                                  com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: MenuItemService
        Accepts a menu item ID and returns a payload object containing the requested menu item and a list of its ancestors.
        Specified by:
        readAncestors in interface MenuItemService<P extends MenuItem>
        Parameters:
        menuItemId - the context ID of the menu item whose ancestors should be found
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        a payload object containing the requested menu item and a list of its ancestors, sorted with the immediate parent at the beginning and the top-level parent at the end
      • getRepository

        @NonNull
        protected MenuItemRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()
        Overrides:
        getRepository in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends MenuItem>