# Uses of Enum Class
com.university.bookstore.model.Material.MaterialType

Packages that use Material.MaterialType
Package
Description
com.university.bookstore.api
com.university.bookstore.composite
com.university.bookstore.controller
com.university.bookstore.impl
com.university.bookstore.iterator
com.university.bookstore.model

- ## Uses of Material.MaterialType in com.university.bookstore.api

  Methods in com.university.bookstore.api that return types with arguments of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `Optional<Material.MaterialType>`
  ModernMaterialStore.SearchCriteria.`type()`
  Returns the value of the `type` record component.
  Methods in com.university.bookstore.api with parameters of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `List<Material>`
  MaterialStore.`getMaterialsByType(Material.MaterialType type)`
  Gets all materials of a specific type.
  `ModernMaterialStore.SearchCriteria.Builder`
  ModernMaterialStore.SearchCriteria.Builder.`withType(Material.MaterialType type)`

- ## Uses of Material.MaterialType in com.university.bookstore.composite

  Methods in com.university.bookstore.composite that return Material.MaterialType
  Modifier and Type
  Method
  Description
  `Material.MaterialType`
  MaterialLeaf.`getType()`
  Gets the material type.
  Methods in com.university.bookstore.composite with parameters of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `boolean`
  MaterialBundle.`containsType(Material.MaterialType type)`
  Checks if this bundle contains any materials of the specified type.
  `List<MaterialBundle>`
  BundleService.`getBundlesByMaterialType(Material.MaterialType type)`
  Gets bundles that contain materials of the specified type.
  `List<Material>`
  MaterialBundle.`getMaterialsByType(Material.MaterialType type)`
  Gets all materials of the specified type in this bundle.

- ## Uses of Material.MaterialType in com.university.bookstore.controller

  Methods in com.university.bookstore.controller with parameters of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `org.springframework.http.ResponseEntity<List<Material>>`
  MaterialController.`getMaterialsByType(Material.MaterialType type)`
  GET /api/materials/type/{type} - Get materials by type

- ## Uses of Material.MaterialType in com.university.bookstore.impl

  Methods in com.university.bookstore.impl that return types with arguments of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `Map<Material.MaterialType, List<Material>>`
  ConcurrentMaterialStore.`groupByType()`
  Groups materials by type for reporting (thread-safe).
  `Map<Material.MaterialType, List<Material>>`
  MaterialStoreImpl.`groupByType()`
  Groups materials by type for reporting.
  `Map<Material.MaterialType, List<Material>>`
  ModernConcurrentMaterialStore.`groupByType()`
  Groups materials by type for reporting.
  Methods in com.university.bookstore.impl with parameters of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `List<Material>`
  ConcurrentMaterialStore.`getMaterialsByType(Material.MaterialType type)`
  `List<Material>`
  MaterialStoreImpl.`getMaterialsByType(Material.MaterialType type)`
  `List<Material>`
  ModernConcurrentMaterialStore.`getMaterialsByType(Material.MaterialType type)`
  `CompletableFuture<List<Material>>`
  ModernConcurrentMaterialStore.`parallelSearchAsync(String title, String creator, Material.MaterialType type)`
  Performs parallel search across multiple criteria.

- ## Uses of Material.MaterialType in com.university.bookstore.iterator

  Methods in com.university.bookstore.iterator that return Material.MaterialType
  Modifier and Type
  Method
  Description
  `Material.MaterialType`
  MaterialTypeIterator.`getTargetType()`
  Gets the target type this iterator filters for.
  Methods in com.university.bookstore.iterator with parameters of type Material.MaterialType
  Modifier and Type
  Method
  Description
  `MaterialIterator`
  MaterialIteratorFactory.`createTypeIterator(List<Material> materials, Material.MaterialType type)`
  Creates a type-filtering iterator.
  Constructors in com.university.bookstore.iterator with parameters of type Material.MaterialType
  Modifier
  Constructor
  Description
  ``
  `MaterialTypeIterator(List<Material> materials, Material.MaterialType targetType)`
  Creates a new material type iterator.

- ## Uses of Material.MaterialType in com.university.bookstore.model

  Subclasses with type arguments of type Material.MaterialType in com.university.bookstore.model
  Modifier and Type
  Class
  Description
  `static enum`
  `Material.MaterialType`
  Enumeration of material types for polymorphic behavior.
  Methods in com.university.bookstore.model that return Material.MaterialType
  Modifier and Type
  Method
  Description
  `Material.MaterialType`
  Material.`getType()`
  `static Material.MaterialType`
  Material.MaterialType.`valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static Material.MaterialType[]`
  Material.MaterialType.`values()`
  Returns an array containing the constants of this enum class, in the order they are declared.