# Uses of Class
com.university.bookstore.composite.MaterialBundle

Packages that use MaterialBundle
Package
Description
com.university.bookstore.builder
com.university.bookstore.composite

- ## Uses of MaterialBundle in com.university.bookstore.builder

  Classes in com.university.bookstore.builder that implement interfaces with type arguments of type MaterialBundle
  Modifier and Type
  Class
  Description
  `class`
  `MaterialBundleBuilder`
  Builder for creating MaterialBundle instances with a fluent interface.
  Methods in com.university.bookstore.builder that return MaterialBundle
  Modifier and Type
  Method
  Description
  `MaterialBundle`
  MaterialBundleBuilder.`build()`
  `MaterialBundle`
  MaterialDirector.`buildCourseBundle(String bundleName, List<Material> materials)`
  Constructs a course bundle with a 25% discount.
  `MaterialBundle`
  MaterialDirector.`buildCustomBundle(String bundleName, List<Material> materials, double discount)`
  Constructs a custom bundle with specified parameters.
  `MaterialBundle`
  MaterialDirector.`buildNestedBundle(String bundleName, List<MaterialBundle> bundles, double discount)`
  Constructs a nested bundle (bundle containing other bundles).
  `MaterialBundle`
  MaterialDirector.`buildPremiumBundle(String bundleName, List<Material> materials)`
  Constructs a premium bundle with a 30% discount.
  `MaterialBundle`
  MaterialDirector.`buildStarterBundle(String bundleName, List<Material> materials)`
  Constructs a starter bundle with a 10% discount.
  `MaterialBundle`
  MaterialDirector.`buildTextbookBundle(String bundleName, List<Material> materials)`
  Constructs a textbook bundle with a 20% discount.
  Methods in com.university.bookstore.builder with parameters of type MaterialBundle
  Modifier and Type
  Method
  Description
  `MaterialBundleBuilder`
  MaterialBundleBuilder.`addBundle(MaterialBundle bundle)`
  Adds a bundle to this bundle (nested bundles).
  Method parameters in com.university.bookstore.builder with type arguments of type MaterialBundle
  Modifier and Type
  Method
  Description
  `MaterialBundle`
  MaterialDirector.`buildNestedBundle(String bundleName, List<MaterialBundle> bundles, double discount)`
  Constructs a nested bundle (bundle containing other bundles).

- ## Uses of MaterialBundle in com.university.bookstore.composite

  Methods in com.university.bookstore.composite that return MaterialBundle
  Modifier and Type
  Method
  Description
  `MaterialBundle`
  BundleService.`createBundle(String name, double discount)`
  Creates a new material bundle with the specified name and discount.
  Methods in com.university.bookstore.composite that return types with arguments of type MaterialBundle
  Modifier and Type
  Method
  Description
  `List<MaterialBundle>`
  BundleService.`getAllBundles()`
  Gets all bundles.
  `Optional<MaterialBundle>`
  BundleService.`getBundle(String name)`
  Gets a bundle by name.
  `List<MaterialBundle>`
  BundleService.`getBundlesByDiscount(double minDiscount)`
  Gets bundles with discounts greater than or equal to the specified threshold.
  `List<MaterialBundle>`
  BundleService.`getBundlesByMaterialType(Material.MaterialType type)`
  Gets bundles that contain materials of the specified type.
  `List<MaterialBundle>`
  BundleService.`getBundlesByValueRange(double minValue, double maxValue)`
  Gets bundles with values within the specified range.