# Index

A B C D E F G H I J L M N O P Q R S T U V W Y
All Classes and Interfaces|All Packages|Serialized Form

## A

add(Book) - Method in interface com.university.bookstore.api.BookstoreAPI
  Adds a book to the inventory.
add(Book) - Method in class com.university.bookstore.impl.BookstoreArrayList
addAnnotation(String) - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Adds an annotation to the material.
addBundle(MaterialBundle) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Adds a bundle to this bundle (nested bundles).
addBundleToBundle(String, String) - Method in class com.university.bookstore.composite.BundleService
  Adds a bundle to another bundle (nested bundles).
addComponent(MaterialComponent) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Adds a material component to the bundle.
addComponent(MaterialComponent) - Method in class com.university.bookstore.composite.MaterialBundle
  Adds a component to this bundle.
addComponents(List<MaterialComponent>) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Adds multiple components to the bundle.
addComponentToBundle(String, MaterialComponent) - Method in class com.university.bookstore.composite.BundleService
  Adds a component to the specified bundle.
addDigitalAnnotations(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Adds digital annotations to a material.
addExpeditedDelivery(Material, int) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Adds expedited delivery to a material.
addGiftWrapping(Material, String) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Adds gift wrapping to a material.
addMaterial(Material) - Method in interface com.university.bookstore.api.MaterialStore
  Adds a material to the store inventory.
addMaterial(Material) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Adds a material to the bundle.
addMaterial(Material) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
addMaterial(Material) - Method in class com.university.bookstore.impl.MaterialStoreImpl
addMaterial(Material) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
addMaterial(Material) - Method in class com.university.bookstore.search.CachedSearchService
  Adds a material to the search index and invalidates relevant cache entries.
addMaterial(Material) - Method in class com.university.bookstore.service.MaterialService
  Adds a material to the system with business logic validation.
addMaterialAsync(Material) - Method in interface com.university.bookstore.api.ModernMaterialStore
  Adds material asynchronously.
addMaterialAsync(Material) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Adds material asynchronously.
addMaterials(List<Material>) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Adds multiple materials to the bundle.
addMaterialsBatchAsync(Collection<Material>) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Adds multiple materials in batch asynchronously.
addMaterialsBatchAsync(List<Material>) - Method in interface com.university.bookstore.api.ModernMaterialStore
  Adds multiple materials in batch.
addObserver(MaterialObserver) - Method in class com.university.bookstore.observer.MaterialEventPublisher
addObserver(MaterialObserver) - Method in interface com.university.bookstore.observer.MaterialSubject
  Adds an observer to receive material events.
addToBundle(String, Material) - Method in class com.university.bookstore.composite.BundleService
  Adds a material to the specified bundle.
AdvancedMaterialFactory - Class in com.university.bookstore.factory
  Enhanced factory for creating Material instances with advanced validation and type-safe property extraction.
AdvancedMaterialFactory() - Constructor for class com.university.bookstore.factory.AdvancedMaterialFactory
advancedSearchAsync(ModernMaterialStore.SearchCriteria) - Method in interface com.university.bookstore.api.ModernMaterialStore
  Performs advanced search with multiple criteria.
allMatch(MaterialIterator, Predicate<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Checks if all materials match a predicate.
AnalyticsData(int, double, int, Map<String, Integer>, Map<String, Integer>, long, long, long, double) - Constructor for class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Creates analytics data with comprehensive statistics.
AnalyticsObserver - Class in com.university.bookstore.observer
  Observer that collects analytics data from material events.
AnalyticsObserver() - Constructor for class com.university.bookstore.observer.AnalyticsObserver
  Creates a new analytics observer.
AnalyticsObserver.AnalyticsData - Class in com.university.bookstore.observer
  Comprehensive analytics data container.
ANNUAL - Enum constant in enum class com.university.bookstore.model.Magazine.PublicationFrequency
anyMatch(MaterialIterator, Predicate<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Checks if any material matches a predicate.
ApprovalStats(int, int, int, double, double) - Constructor for class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
AUDIO_BOOK - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
AudioBook - Class in com.university.bookstore.model
  Represents an audio book that implements both Material and Media interfaces.
AudioBook(String, String, String, String, double, int, int, String, double, Media.MediaQuality, String, boolean) - Constructor for class com.university.bookstore.model.AudioBook
  Creates a new AudioBook with full specifications.
AuditLogEntry(long, String, String, String, String) - Constructor for class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
  Creates an audit log entry.
AuditLogObserver - Class in com.university.bookstore.observer
  Observer that maintains an audit log of all material events.
AuditLogObserver() - Constructor for class com.university.bookstore.observer.AuditLogObserver
  Creates a new audit log observer with unlimited log size.
AuditLogObserver(int) - Constructor for class com.university.bookstore.observer.AuditLogObserver
  Creates a new audit log observer with the specified maximum log size.
AuditLogObserver.AuditLogEntry - Class in com.university.bookstore.observer
  Represents a single audit log entry.
AuditLogObserver.AuditLogStats - Class in com.university.bookstore.observer
  Statistics for the audit log.
AuditLogStats(int, int, int, long, long) - Constructor for class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
  Creates audit log statistics.
averageLoadTime() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `averageLoadTime` record component.
averagePrice() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns the value of the `averagePrice` record component.
averagePrice(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Calculates the average price of books in the array.

## B

BatchOperationResult(int, int, List<String>) - Constructor for record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Creates an instance of a `BatchOperationResult` record class.
BIWEEKLY - Enum constant in enum class com.university.bookstore.model.Magazine.PublicationFrequency
Book - Class in com.university.bookstore.model
  Represents an immutable book in the bookstore inventory.
Book(String, String, String, double, int) - Constructor for class com.university.bookstore.model.Book
  Creates a new Book with validation.
BOOK - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
BookArrayUtils - Class in com.university.bookstore.utils
  Utility class for array-based operations on Book objects.
BookstoreAPI - Interface in com.university.bookstore.api
  Defines the contract for bookstore operations.
BookstoreApplication - Class in com.university.bookstore
  Spring Boot application entry point for the Bookstore Management System.
BookstoreApplication() - Constructor for class com.university.bookstore.BookstoreApplication
BookstoreArrayList - Class in com.university.bookstore.impl
  ArrayList-based implementation of the BookstoreAPI.
BookstoreArrayList() - Constructor for class com.university.bookstore.impl.BookstoreArrayList
  Creates a new empty bookstore.
BookstoreArrayList(Collection<Book>) - Constructor for class com.university.bookstore.impl.BookstoreArrayList
  Creates a bookstore with initial books.
build() - Method in class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder
build() - Method in interface com.university.bookstore.builder.ComponentBuilder
  Builds and returns the component instance.
build() - Method in class com.university.bookstore.builder.EBookBuilder
build() - Method in interface com.university.bookstore.builder.MaterialBuilder
  Builds and returns the material instance.
build() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
buildBasicEBook(String, String, String, double) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a basic EBook with minimal features.
buildCourseBundle(String, List<Material>) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a course bundle with a 25% discount.
buildCustomBundle(String, List<Material>, double) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a custom bundle with specified parameters.
builder() - Static method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Creates a new builder.
Builder() - Constructor for class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder
buildNestedBundle(String, List<MaterialBundle>, double) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a nested bundle (bundle containing other bundles).
buildPremiumBundle(String, List<Material>) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a premium bundle with a 30% discount.
buildPremiumEBook(String, String, String, double) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a premium EBook with all features enabled.
buildStarterBundle(String, List<Material>) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a starter bundle with a 10% discount.
buildStudentEBook(String, String, String, double) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a student EBook with educational features.
buildTextbookBundle(String, List<Material>) - Method in class com.university.bookstore.builder.MaterialDirector
  Constructs a textbook bundle with a 20% discount.
BundleService - Class in com.university.bookstore.composite
  Service for managing material bundles using the Composite pattern.
BundleService() - Constructor for class com.university.bookstore.composite.BundleService
  Creates a new bundle service.
BundleService.BundleStats - Class in com.university.bookstore.composite
  Statistics class for bundle analysis.
BundleStats(int, int, double, double, double, double) - Constructor for class com.university.bookstore.composite.BundleService.BundleStats

## C

CachedSearchService - Class in com.university.bookstore.search
  Service that integrates Trie-based prefix search with LRU caching for optimal performance.
CachedSearchService(MaterialRepository, int) - Constructor for class com.university.bookstore.search.CachedSearchService
  Creates a new cached search service.
CacheStats(int, int, double, double, long, long) - Constructor for class com.university.bookstore.search.SearchResultCache.CacheStats
CacheStats(long, long, long, long, double, double, int, long) - Constructor for record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Creates an instance of a `CacheStats` record class.
calculateAnnualSubscription() - Method in class com.university.bookstore.model.Magazine
  Calculates annual subscription cost with discount.
calculateBundleSavings(String) - Method in class com.university.bookstore.composite.BundleService
  Calculates the total savings for a bundle.
calculateEnhancementCost(Material, Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Calculates the total enhancement cost for a material.
calculateFinalPrice(DiscountRequest) - Method in class com.university.bookstore.chain.DiscountApprovalService
  Calculates the final price for an approved discount request.
calculateListeningSessions(int) - Method in class com.university.bookstore.model.AudioBook
  Calculates listening sessions based on daily listening time.
calculateShippingCost(Material) - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Calculates shipping cost for a single material.
calculateTotalSavings() - Method in class com.university.bookstore.composite.BundleService
  Calculates the total savings across all bundles.
canApprove(double) - Method in class com.university.bookstore.chain.DiscountHandler
  Checks if this handler can approve the given discount amount.
clear() - Method in class com.university.bookstore.impl.BookstoreArrayList
  Clears all books from the inventory.
clear() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Clears all analytics data.
clear() - Method in class com.university.bookstore.observer.InventoryObserver
  Clears all inventory data.
clear() - Method in class com.university.bookstore.search.CachedSearchService
  Clears the search index and cache.
clear() - Method in class com.university.bookstore.search.MaterialTrie
  Clears all materials from the trie.
clear() - Method in class com.university.bookstore.search.SearchResultCache
  Clears all entries from the cache.
clearAllBundles() - Method in class com.university.bookstore.composite.BundleService
  Clears all bundles.
clearAllMaterials() - Method in class com.university.bookstore.service.MaterialService
  Clears all materials from the system.
clearAnnotations() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Clears all annotations.
clearAuditLog() - Method in class com.university.bookstore.observer.AuditLogObserver
  Clears the audit log.
clearComponents() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Clears all components from the bundle.
clearInventory() - Method in interface com.university.bookstore.api.MaterialStore
  Clears all materials from the store.
clearInventory() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
clearInventory() - Method in class com.university.bookstore.impl.MaterialStoreImpl
clearInventory() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
clearObservers() - Method in class com.university.bookstore.observer.MaterialEventPublisher
clearObservers() - Method in interface com.university.bookstore.observer.MaterialSubject
  Clears all observers.
clearRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService
  Clears all processed requests.
close() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
close() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
close() - Method in class com.university.bookstore.search.ModernSearchCache
collectAll(MaterialIterator) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Collects all materials from an iterator into a list.
com.university.bookstore - package com.university.bookstore
com.university.bookstore.api - package com.university.bookstore.api
com.university.bookstore.builder - package com.university.bookstore.builder
com.university.bookstore.chain - package com.university.bookstore.chain
com.university.bookstore.composite - package com.university.bookstore.composite
com.university.bookstore.controller - package com.university.bookstore.controller
com.university.bookstore.decorator - package com.university.bookstore.decorator
com.university.bookstore.demo - package com.university.bookstore.demo
com.university.bookstore.factory - package com.university.bookstore.factory
com.university.bookstore.impl - package com.university.bookstore.impl
com.university.bookstore.iterator - package com.university.bookstore.iterator
com.university.bookstore.model - package com.university.bookstore.model
com.university.bookstore.observer - package com.university.bookstore.observer
com.university.bookstore.repository - package com.university.bookstore.repository
com.university.bookstore.search - package com.university.bookstore.search
com.university.bookstore.service - package com.university.bookstore.service
com.university.bookstore.utils - package com.university.bookstore.utils
com.university.bookstore.visitor - package com.university.bookstore.visitor
compareTo(Book) - Method in class com.university.bookstore.model.Book
  Compares this book with another book based on title (alphabetical order).
compareTo(Material) - Method in class com.university.bookstore.model.Material
  Compares materials by title for natural ordering.
ComponentBuilder<T> - Interface in com.university.bookstore.builder
  Builder interface for creating MaterialComponent instances.
ConcurrentMaterialStore - Class in com.university.bookstore.impl
  Thread-safe implementation of MaterialStore using synchronization primitives.
ConcurrentMaterialStore() - Constructor for class com.university.bookstore.impl.ConcurrentMaterialStore
  Creates a new thread-safe material store.
ConcurrentMaterialStore(Collection<Material>) - Constructor for class com.university.bookstore.impl.ConcurrentMaterialStore
  Creates a material store with initial materials.
containsKey(String) - Method in class com.university.bookstore.search.ModernSearchCache
  Checks if a key is cached.
containsKey(String) - Method in class com.university.bookstore.search.SearchResultCache
  Checks if the cache contains results for the given key.
containsMaterial(Material) - Method in class com.university.bookstore.composite.MaterialBundle
  Checks if this bundle contains the specified material.
containsType(Material.MaterialType) - Method in class com.university.bookstore.composite.MaterialBundle
  Checks if this bundle contains any materials of the specified type.
count() - Method in class com.university.bookstore.repository.JsonMaterialRepository
count() - Method in interface com.university.bookstore.repository.MaterialRepository
  Counts the total number of materials in the repository.
count() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
count(MaterialIterator, Predicate<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Counts materials matching a predicate.
countBeforeYear(Book[], int) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Counts books published before a given year.
countByAuthor(Book[], String) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Counts books by a specific author (case-insensitive, exact match).
countByDecade(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Groups books by decade and returns a summary.
createAudioBookIterator(List<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates an audio book iterator.
createBackup() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Creates a backup of the current data file.
createBookIterator(List<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a book iterator.
createBundle(String, double) - Method in class com.university.bookstore.composite.BundleService
  Creates a new material bundle with the specified name and discount.
createBundleBuilder() - Method in class com.university.bookstore.builder.MaterialDirector
  Creates a new MaterialBundle builder instance.
createCheapIterator(List<Material>, double) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a cheap materials iterator.
createDigitalPackage(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Creates a digital package with digital annotations (for e-books only).
createEBookBuilder() - Method in class com.university.bookstore.builder.MaterialDirector
  Creates a new EBook builder instance.
createEBookIterator(List<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates an e-book iterator.
createExpensiveIterator(List<Material>, double) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates an expensive materials iterator.
createGiftPackage(Material, String, int) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Creates a gift package with gift wrapping and expedited delivery.
createMagazineIterator(List<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a magazine iterator.
createMaterial(Material) - Method in class com.university.bookstore.controller.MaterialController
  POST /api/materials - Create a new material
createMaterial(String, Map<String, Object>) - Static method in class com.university.bookstore.factory.AdvancedMaterialFactory
  Creates a Material instance based on the specified type and properties.
createMaterial(String, Map<String, Object>) - Static method in class com.university.bookstore.factory.MaterialFactory
  Creates a Material instance based on the specified type and properties.
createPremiumPackage(Material, String, int) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Creates a premium package with multiple enhancements.
createPriceRangeIterator(List<Material>, double, double) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a price range iterator.
createPriceSortedIterator(List<Material>, boolean) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a price-sorted iterator.
createTypeIterator(List<Material>, Material.MaterialType) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a type-filtering iterator.
createVideoIterator(List<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Creates a video iterator.
creator() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `creator` record component.

## D

DAILY - Enum constant in enum class com.university.bookstore.model.Magazine.PublicationFrequency
dataFileExists() - Method in class com.university.bookstore.repository.JsonMaterialRepository
  Checks if the data file exists.
dataFileExists() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Checks if the data file exists.
delete(String) - Method in class com.university.bookstore.repository.JsonMaterialRepository
delete(String) - Method in interface com.university.bookstore.repository.MaterialRepository
  Deletes a material by its ID.
delete(String) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
deleteAll() - Method in class com.university.bookstore.repository.JsonMaterialRepository
deleteAll() - Method in interface com.university.bookstore.repository.MaterialRepository
  Deletes all materials from the repository.
deleteAll() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
deleteAll(Collection<String>) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Deletes multiple materials in batch.
deleteMaterial(String) - Method in class com.university.bookstore.controller.MaterialController
  DELETE /api/materials/{id} - Delete a material
DigitalAnnotationDecorator - Class in com.university.bookstore.decorator
  Decorator that adds digital annotation functionality to materials.
DigitalAnnotationDecorator(Material) - Constructor for class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Creates a new digital annotation decorator.
DirectorHandler - Class in com.university.bookstore.chain
  Director-level discount approval handler.
DirectorHandler() - Constructor for class com.university.bookstore.chain.DirectorHandler
disableDRM() - Method in class com.university.bookstore.builder.EBookBuilder
  Sets DRM enabled to false.
DiscountApprovalService - Class in com.university.bookstore.chain
  Service for managing discount approval using the Chain of Responsibility pattern.
DiscountApprovalService() - Constructor for class com.university.bookstore.chain.DiscountApprovalService
  Creates a new discount approval service with the default chain.
DiscountApprovalService(DiscountHandler) - Constructor for class com.university.bookstore.chain.DiscountApprovalService
  Creates a new discount approval service with a custom chain.
DiscountApprovalService.ApprovalStats - Class in com.university.bookstore.chain
  Statistics class for approval analysis.
DiscountHandler - Class in com.university.bookstore.chain
  Abstract base class for discount approval handlers in the Chain of Responsibility pattern.
DiscountHandler() - Constructor for class com.university.bookstore.chain.DiscountHandler
DiscountRequest - Class in com.university.bookstore.chain
  Request object for discount approval in the Chain of Responsibility pattern.
DiscountRequest(Material, double, String, String) - Constructor for class com.university.bookstore.chain.DiscountRequest
  Creates a new discount request.
DOCUMENTARY - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
DOCUMENTARY - Enum constant in enum class com.university.bookstore.model.VideoMaterial.VideoType

## E

E_BOOK - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
EBook - Class in com.university.bookstore.model
  Represents an electronic book (e-book) in the bookstore system.
EBook(String, String, String, double, int, String, double, boolean, int, Media.MediaQuality) - Constructor for class com.university.bookstore.model.EBook
  Constructs a new EBook with validation.
EBOOK - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
EBookBuilder - Class in com.university.bookstore.builder
  Builder for creating EBook instances with a fluent interface.
EBookBuilder() - Constructor for class com.university.bookstore.builder.EBookBuilder
EDUCATIONAL - Enum constant in enum class com.university.bookstore.model.VideoMaterial.VideoType
empty() - Static method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Creates an empty stats instance.
enableDRM() - Method in class com.university.bookstore.builder.EBookBuilder
  Sets DRM enabled to true.
equals(Object) - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Indicates whether some other object is "equal to" this one.
equals(Object) - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Indicates whether some other object is "equal to" this one.
equals(Object) - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Indicates whether some other object is "equal to" this one.
equals(Object) - Method in class com.university.bookstore.chain.DiscountRequest
equals(Object) - Method in class com.university.bookstore.composite.MaterialBundle
equals(Object) - Method in class com.university.bookstore.composite.MaterialLeaf
equals(Object) - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
equals(Object) - Method in class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
equals(Object) - Method in class com.university.bookstore.decorator.GiftWrappingDecorator
equals(Object) - Method in class com.university.bookstore.decorator.MaterialDecorator
equals(Object) - Method in class com.university.bookstore.model.Book
  Checks if this book is equal to another object.
equals(Object) - Method in class com.university.bookstore.model.EBook
equals(Object) - Method in class com.university.bookstore.model.Material
  Materials are equal if they have the same ID.
equals(Object) - Method in class com.university.bookstore.observer.MaterialAddedEvent
equals(Object) - Method in class com.university.bookstore.observer.PriceChangedEvent
equals(Object) - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Indicates whether some other object is "equal to" this one.
errors() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Returns the value of the `errors` record component.
estimateDownloadTime(double) - Method in interface com.university.bookstore.model.Media
  Calculates estimated download time based on connection speed.
estimateReadingTime(int) - Method in class com.university.bookstore.model.PrintedBook
  Calculates estimated reading time based on average reading speed.
evictionCount() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `evictionCount` record component.
exists(String) - Method in class com.university.bookstore.repository.JsonMaterialRepository
exists(String) - Method in interface com.university.bookstore.repository.MaterialRepository
  Checks if a material with the given ID exists.
exists(String) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
ExpeditedDeliveryDecorator - Class in com.university.bookstore.decorator
  Decorator that adds expedited delivery functionality to materials.
ExpeditedDeliveryDecorator(Material, int) - Constructor for class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
  Creates a new expedited delivery decorator.

## F

failed() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Returns the value of the `failed` record component.
filterByDecade(Book[], int) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Filters books published in a specific decade.
filterByYearRange(Book[], int, int) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Finds books within a year range (inclusive).
filterMaterials(Predicate<Material>) - Method in interface com.university.bookstore.api.MaterialStore
  Filters materials by a custom predicate.
filterMaterials(Predicate<Material>) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
filterMaterials(Predicate<Material>) - Method in class com.university.bookstore.impl.MaterialStoreImpl
filterMaterials(Predicate<Material>) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
filterPriceAtMost(Book[], double) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Filters books with price at most the specified maximum.
findAll() - Method in class com.university.bookstore.repository.JsonMaterialRepository
findAll() - Method in interface com.university.bookstore.repository.MaterialRepository
  Retrieves all materials from the repository.
findAll() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
findAll(MaterialIterator, Predicate<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Finds all materials matching a predicate.
findByAuthor(String) - Method in interface com.university.bookstore.api.BookstoreAPI
  Searches for books by author (case-insensitive, partial match).
findByAuthor(String) - Method in class com.university.bookstore.impl.BookstoreArrayList
findByCreators(String...) - Method in interface com.university.bookstore.api.MaterialStore
  Finds materials by multiple creators (OR condition).
findByCreators(String...) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
findByCreators(String...) - Method in class com.university.bookstore.impl.MaterialStoreImpl
findByCreators(String...) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
findById(String) - Method in interface com.university.bookstore.api.MaterialStore
  Finds a material by its ID.
findById(String) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
findById(String) - Method in class com.university.bookstore.impl.MaterialStoreImpl
findById(String) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
findById(String) - Method in class com.university.bookstore.repository.JsonMaterialRepository
findById(String) - Method in interface com.university.bookstore.repository.MaterialRepository
  Finds a material by its unique identifier.
findById(String) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
findByIdAsync(String) - Method in interface com.university.bookstore.api.ModernMaterialStore
  Finds material by ID asynchronously.
findByIdAsync(String) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Finds material by ID asynchronously.
findByIdsAsync(List<String>) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Finds multiple materials by IDs asynchronously.
findByIsbn(String) - Method in interface com.university.bookstore.api.BookstoreAPI
  Finds a book by its ISBN.
findByIsbn(String) - Method in class com.university.bookstore.impl.BookstoreArrayList
findByPriceRange(double, double) - Method in interface com.university.bookstore.api.BookstoreAPI
  Finds all books within a price range (inclusive).
findByPriceRange(double, double) - Method in class com.university.bookstore.impl.BookstoreArrayList
findByTitle(String) - Method in interface com.university.bookstore.api.BookstoreAPI
  Searches for books by title (case-insensitive, partial match).
findByTitle(String) - Method in class com.university.bookstore.impl.BookstoreArrayList
findByYear(int) - Method in interface com.university.bookstore.api.BookstoreAPI
  Finds all books published in a specific year.
findByYear(int) - Method in class com.university.bookstore.impl.BookstoreArrayList
findFirst(MaterialIterator, Predicate<Material>) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Finds the first material matching a predicate.
findLongestTitle(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Finds the book with the longest title.
findMaterial(String) - Method in class com.university.bookstore.service.MaterialService
  Finds a material by its ID.
findMaterialOptional(String) - Method in class com.university.bookstore.service.MaterialService
  Finds a material by its ID, returning Optional.
findOldest(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Finds the oldest book (earliest publication year).
findRecentMaterials(int) - Method in interface com.university.bookstore.api.MaterialStore
  Finds materials published in the last N years.
findRecentMaterials(int) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
findRecentMaterials(int) - Method in class com.university.bookstore.impl.MaterialStoreImpl
findRecentMaterials(int) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
findWithPredicate(Predicate<Material>) - Method in interface com.university.bookstore.api.MaterialStore
  Finds materials with custom filtering using predicate.
findWithPredicate(Predicate<Material>) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
findWithPredicate(Predicate<Material>) - Method in class com.university.bookstore.impl.MaterialStoreImpl
findWithPredicate(Predicate<Material>) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore

## G

get(String) - Method in class com.university.bookstore.search.SearchResultCache
  Retrieves cached search results for the given key.
get(String, Function<String, List<Material>>) - Method in class com.university.bookstore.search.ModernSearchCache
  Gets a value from the cache or loads it if not present.
getAdjustedDuration(double) - Method in class com.university.bookstore.model.AudioBook
  Gets playback speed adjusted duration.
getAllBooks() - Method in interface com.university.bookstore.api.BookstoreAPI
  Gets all books in the inventory.
getAllBooks() - Method in class com.university.bookstore.impl.BookstoreArrayList
getAllBundles() - Method in class com.university.bookstore.composite.BundleService
  Gets all bundles.
getAllDisplayInfo() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
  Gets all display info for materials (thread-safe).
getAllDisplayInfo() - Method in class com.university.bookstore.impl.MaterialStoreImpl
  Demonstrates polymorphic behavior by getting display info for all materials.
getAllInventoryCounts() - Method in class com.university.bookstore.observer.InventoryObserver
  Gets all inventory counts.
getAllMaterials() - Method in interface com.university.bookstore.api.MaterialStore
  Gets all materials (unsorted).
getAllMaterials() - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials - Retrieve all materials
getAllMaterials() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getAllMaterials() - Method in class com.university.bookstore.impl.MaterialStoreImpl
getAllMaterials() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getAllMaterials() - Method in class com.university.bookstore.search.MaterialTrie
  Gets all materials in the trie.
getAllMaterials() - Method in class com.university.bookstore.service.MaterialService
  Gets all materials in the system.
getAllMaterialsSorted() - Method in interface com.university.bookstore.api.MaterialStore
  Gets all materials sorted by title.
getAllMaterialsSorted() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getAllMaterialsSorted() - Method in class com.university.bookstore.impl.MaterialStoreImpl
getAllMaterialsSorted() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getAllTotalValues() - Method in class com.university.bookstore.observer.InventoryObserver
  Gets all total values.
getAnalyticsData() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets comprehensive analytics data.
getAnnotationCount() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Gets the number of annotations.
getAnnotations() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Gets all annotations.
getApprovalRate() - Method in class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
getApprovalStats() - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets approval statistics.
getApprovedBy() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets who approved the request.
getApprovedRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
getApprovedRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets approved discount requests.
getAspectRatio() - Method in class com.university.bookstore.model.VideoMaterial
getAsync(String, Function<String, CompletableFuture<List<Material>>>) - Method in class com.university.bookstore.search.ModernSearchCache
  Gets a value from the cache or loads it asynchronously.
getAuditLog() - Method in class com.university.bookstore.observer.AuditLogObserver
  Gets all audit log entries.
getAuditLogForEventType(String) - Method in class com.university.bookstore.observer.AuditLogObserver
  Gets audit log entries for a specific event type.
getAuditLogForMaterial(String) - Method in class com.university.bookstore.observer.AuditLogObserver
  Gets audit log entries for a specific material.
getAuditLogForTimeRange(long, long) - Method in class com.university.bookstore.observer.AuditLogObserver
  Gets audit log entries within a time range.
getAuditLogStats() - Method in class com.university.bookstore.observer.AuditLogObserver
  Gets audit log statistics.
getAuthor() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current author.
getAuthor() - Method in class com.university.bookstore.model.AudioBook
  Gets the author.
getAuthor() - Method in class com.university.bookstore.model.Book
  Gets the author of this book.
getAuthor() - Method in class com.university.bookstore.model.EBook
  Gets the author of the e-book.
getAuthor() - Method in class com.university.bookstore.model.PrintedBook
getAverageAge() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
getAverageDiscount() - Method in class com.university.bookstore.composite.BundleService.BundleStats
getAverageEventRate() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the average rate of events.
getAverageEventRate() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the average events per second.
getAveragePrice() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
getBaseMaterial() - Method in class com.university.bookstore.decorator.MaterialDecorator
  Gets the base material (unwraps all decorators).
getBaseMaterial(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Gets the base material (unwraps all decorators).
getBasePrice(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Gets the base price of a material (without decorators).
getBitrate() - Method in enum class com.university.bookstore.model.Media.MediaQuality
getBundle(String) - Method in class com.university.bookstore.composite.BundleService
  Gets a bundle by name.
getBundleBuilder() - Method in class com.university.bookstore.builder.MaterialDirector
  Gets the MaterialBundle builder for custom configurations.
getBundleCount() - Method in class com.university.bookstore.composite.BundleService
  Gets the number of bundles.
getBundleDiscount() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the current bundle discount.
getBundleDiscount() - Method in class com.university.bookstore.composite.MaterialBundle
  Gets the bundle discount rate.
getBundleDiscountPercent() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the current bundle discount percentage.
getBundleName() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the current bundle name.
getBundleName() - Method in class com.university.bookstore.composite.MaterialBundle
  Gets the bundle name.
getBundleNames() - Method in class com.university.bookstore.composite.BundleService
  Gets all bundle names.
getBundlesByDiscount(double) - Method in class com.university.bookstore.composite.BundleService
  Gets bundles with discounts greater than or equal to the specified threshold.
getBundlesByMaterialType(Material.MaterialType) - Method in class com.university.bookstore.composite.BundleService
  Gets bundles that contain materials of the specified type.
getBundlesByValueRange(double, double) - Method in class com.university.bookstore.composite.BundleService
  Gets bundles with values within the specified range.
getBundleStats() - Method in class com.university.bookstore.composite.BundleService
  Gets bundle statistics.
getCacheStats() - Method in class com.university.bookstore.search.CachedSearchService
  Gets cache statistics for performance monitoring.
getCast() - Method in class com.university.bookstore.model.VideoMaterial
getCategory() - Method in class com.university.bookstore.model.Magazine
getChainInfo() - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets the approval chain information.
getChainLength() - Method in class com.university.bookstore.chain.DiscountHandler
  Gets the chain length from this handler to the end.
getComponentCount() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the number of components.
getComponentCount() - Method in class com.university.bookstore.composite.MaterialBundle
  Gets the number of components in this bundle.
getComponents() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the current components.
getComponents() - Method in class com.university.bookstore.composite.MaterialBundle
  Gets all components in this bundle.
getCompressedSize(double) - Method in class com.university.bookstore.model.VideoMaterial
  Gets storage space required with compression.
getCreator() - Method in class com.university.bookstore.composite.MaterialLeaf
  Gets the material creator.
getCreator() - Method in class com.university.bookstore.decorator.MaterialDecorator
getCreator() - Method in class com.university.bookstore.model.AudioBook
getCreator() - Method in class com.university.bookstore.model.EBook
getCreator() - Method in class com.university.bookstore.model.Magazine
getCreator() - Method in class com.university.bookstore.model.Material
  Abstract method to get the creator/author/artist of the material.
getCreator() - Method in class com.university.bookstore.model.PrintedBook
getCreator() - Method in class com.university.bookstore.model.VideoMaterial
getCurrentPosition() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Gets the current position in the iteration.
getCurrentPosition() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
getCurrentPosition() - Method in class com.university.bookstore.iterator.PriceRangeIterator
getCurrentPosition() - Method in class com.university.bookstore.iterator.PriceSortedIterator
getCurrentSize() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
getCustomerId() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the customer ID.
getDataFileSize() - Method in class com.university.bookstore.repository.JsonMaterialRepository
  Gets the size of the data file in bytes.
getDataFileSize() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Gets the size of the data file in bytes.
getDecoratedMaterial() - Method in class com.university.bookstore.decorator.MaterialDecorator
  Gets the decorated material.
getDecoratorCount() - Method in class com.university.bookstore.decorator.MaterialDecorator
  Gets the number of decorators applied to this material.
getDeliveryDays() - Method in class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
  Gets the delivery time in days.
getDescription() - Method in class com.university.bookstore.composite.MaterialBundle
getDescription() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets a description of this component.
getDescription() - Method in class com.university.bookstore.composite.MaterialLeaf
getDescription() - Method in class com.university.bookstore.model.EBook
getDescription() - Method in enum class com.university.bookstore.model.Media.MediaQuality
getDescription() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
  Gets the event description.
getDescription() - Method in class com.university.bookstore.observer.MaterialAddedEvent
getDescription() - Method in interface com.university.bookstore.observer.MaterialEvent
  Gets a description of this event.
getDescription() - Method in class com.university.bookstore.observer.PriceChangedEvent
getDigitalAnnotationCost() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Gets the digital annotation cost.
getDirector() - Method in class com.university.bookstore.model.VideoMaterial
getDiscountedMaterials() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
  Gets materials with active discounts (thread-safe).
getDiscountedMaterials() - Method in class com.university.bookstore.impl.MaterialStoreImpl
  Gets materials with active discounts.
getDiscountedMaterials() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Gets materials with active discounts.
getDiscountedPrice() - Method in class com.university.bookstore.chain.DiscountRequest
  Calculates the discounted price if approved.
getDiscountedPrice() - Method in class com.university.bookstore.composite.MaterialBundle
getDiscountedPrice() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets the discounted price of this component.
getDiscountedPrice() - Method in class com.university.bookstore.composite.MaterialLeaf
getDiscountedPrice() - Method in class com.university.bookstore.model.Material
  Template method for calculating discounted price.
getDiscountRate() - Method in class com.university.bookstore.composite.MaterialBundle
getDiscountRate() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets the discount rate applied to this component.
getDiscountRate() - Method in class com.university.bookstore.composite.MaterialLeaf
getDiscountRate() - Method in class com.university.bookstore.decorator.MaterialDecorator
getDiscountRate() - Method in class com.university.bookstore.model.AudioBook
getDiscountRate() - Method in class com.university.bookstore.model.EBook
getDiscountRate() - Method in class com.university.bookstore.model.Magazine
getDiscountRate() - Method in class com.university.bookstore.model.Material
  Hook method for discount rate.
getDiscountRate() - Method in class com.university.bookstore.model.PrintedBook
getDiscountRate() - Method in class com.university.bookstore.model.VideoMaterial
getDisplayInfo() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
getDisplayInfo() - Method in class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
getDisplayInfo() - Method in class com.university.bookstore.decorator.GiftWrappingDecorator
getDisplayInfo() - Method in class com.university.bookstore.decorator.MaterialDecorator
getDisplayInfo() - Method in class com.university.bookstore.model.AudioBook
getDisplayInfo() - Method in class com.university.bookstore.model.EBook
getDisplayInfo() - Method in class com.university.bookstore.model.Magazine
getDisplayInfo() - Method in class com.university.bookstore.model.Material
  Abstract method to get a formatted display string.
getDisplayInfo() - Method in class com.university.bookstore.model.PrintedBook
getDisplayInfo() - Method in class com.university.bookstore.model.VideoMaterial
getDisplayName() - Method in enum class com.university.bookstore.model.Material.MaterialType
getDuration() - Method in class com.university.bookstore.model.AudioBook
getDuration() - Method in class com.university.bookstore.model.EBook
getDuration() - Method in interface com.university.bookstore.model.Media
  Gets the duration of the media in minutes.
getDuration() - Method in class com.university.bookstore.model.VideoMaterial
getEBookBuilder() - Method in class com.university.bookstore.builder.MaterialDirector
  Gets the EBook builder for custom configurations.
getEnhancementCount(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Gets the number of decorators applied to a material.
getEnhancementSummary(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Gets a summary of enhancements applied to a material.
getEventCount(String) - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the count for a specific event type.
getEventStatistics() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the event statistics map.
getEventStatistics() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets event statistics.
getEventTimeSpan() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the time span of events.
getEventTimeSpan() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the time span of events.
getEventType() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
  Gets the type of event.
getEventType() - Method in class com.university.bookstore.observer.MaterialAddedEvent
getEventType() - Method in interface com.university.bookstore.observer.MaterialEvent
  Gets the type of this event.
getEventType() - Method in class com.university.bookstore.observer.PriceChangedEvent
getExpeditedDeliveryCost() - Method in class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
  Gets the expedited delivery cost.
getFileFormat() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current file format.
getFileFormat() - Method in class com.university.bookstore.model.EBook
  Gets the file format of the ebook.
getFilePath() - Method in class com.university.bookstore.repository.JsonMaterialRepository
  Gets the file path used for persistence.
getFilePath() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Gets the file path used for persistence.
getFileSize() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current file size.
getFileSize() - Method in class com.university.bookstore.model.AudioBook
getFileSize() - Method in class com.university.bookstore.model.EBook
  Gets the file size in MB.
getFileSize() - Method in interface com.university.bookstore.model.Media
  Gets the file size in megabytes.
getFileSize() - Method in class com.university.bookstore.model.VideoMaterial
getFirstEventTime() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the timestamp of first event.
getFirstEventTime() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the time of the first event.
getFormat() - Method in class com.university.bookstore.model.AudioBook
getFormat() - Method in class com.university.bookstore.model.EBook
getFormat() - Method in interface com.university.bookstore.model.Media
  Gets the file format of the media.
getFormat() - Method in class com.university.bookstore.model.VideoMaterial
getFrequency() - Method in class com.university.bookstore.model.Magazine
getGiftWrappingCost() - Method in class com.university.bookstore.decorator.GiftWrappingDecorator
  Gets the gift wrapping cost.
getHandlerInfo() - Method in class com.university.bookstore.chain.DiscountHandler
  Gets information about this handler and the chain.
getHandlerName() - Method in class com.university.bookstore.chain.DirectorHandler
getHandlerName() - Method in class com.university.bookstore.chain.DiscountHandler
  Gets the name of this handler for identification purposes.
getHandlerName() - Method in class com.university.bookstore.chain.ManagerHandler
getHandlerName() - Method in class com.university.bookstore.chain.VPHandler
getHitRatio() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
getId() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current ID.
getId() - Method in class com.university.bookstore.composite.MaterialLeaf
  Gets the material ID.
getId() - Method in class com.university.bookstore.model.Material
getIndexSize() - Method in class com.university.bookstore.search.CachedSearchService
  Gets the current size of the search index.
getInventoryCount(String) - Method in class com.university.bookstore.observer.InventoryObserver
  Gets the inventory count for a specific material.
getInventoryStats() - Method in interface com.university.bookstore.api.MaterialStore
  Gets inventory statistics.
getInventoryStats() - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/stats - Get inventory statistics
getInventoryStats() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getInventoryStats() - Method in class com.university.bookstore.impl.MaterialStoreImpl
getInventoryStats() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getInventoryStatsAsync() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Gets inventory statistics asynchronously.
getIsbn() - Method in class com.university.bookstore.model.AudioBook
  Gets the ISBN.
getIsbn() - Method in class com.university.bookstore.model.Book
  Gets the ISBN of this book.
getIsbn() - Method in class com.university.bookstore.model.PrintedBook
getIssn() - Method in class com.university.bookstore.model.Magazine
getIssueNumber() - Method in class com.university.bookstore.model.Magazine
getItemCount() - Method in class com.university.bookstore.composite.MaterialBundle
getItemCount() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets the total number of items in this component.
getItemCount() - Method in class com.university.bookstore.composite.MaterialLeaf
getLanguage() - Method in class com.university.bookstore.model.AudioBook
  Gets the language.
getLastEventTime() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the timestamp of last event.
getLastEventTime() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the time of the last event.
getLogger(Class<?>) - Static method in class com.university.bookstore.utils.LoggerFactory
  Creates a logger for the specified class.
getLogger(String) - Static method in class com.university.bookstore.utils.LoggerFactory
  Creates a logger with the specified name.
getLogSize() - Method in class com.university.bookstore.observer.AuditLogObserver
  Gets the number of audit log entries.
getMaterial() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the material for which discount is requested.
getMaterial() - Method in class com.university.bookstore.composite.MaterialLeaf
  Gets the wrapped material.
getMaterial() - Method in class com.university.bookstore.observer.MaterialAddedEvent
getMaterial() - Method in interface com.university.bookstore.observer.MaterialEvent
  Gets the material associated with this event.
getMaterial() - Method in class com.university.bookstore.observer.PriceChangedEvent
getMaterialAddedCount() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
  Gets the number of material added events.
getMaterialById(String) - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/{id} - Retrieve a specific material by ID
getMaterialCount() - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/count - Get total material count
getMaterialCount() - Method in class com.university.bookstore.service.MaterialService
  Gets the total number of materials in the system.
getMaterialId() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
  Gets the ID of the material.
getMaterials() - Method in class com.university.bookstore.composite.MaterialBundle
getMaterials() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets all materials contained in this component.
getMaterials() - Method in class com.university.bookstore.composite.MaterialLeaf
getMaterials() - Method in class com.university.bookstore.repository.MaterialsWrapper
getMaterialsByPriceRange(double, double) - Method in interface com.university.bookstore.api.MaterialStore
  Gets materials within a price range.
getMaterialsByPriceRange(double, double) - Method in class com.university.bookstore.controller.MaterialController
  Get materials by price range.
getMaterialsByPriceRange(double, double) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getMaterialsByPriceRange(double, double) - Method in class com.university.bookstore.impl.MaterialStoreImpl
getMaterialsByPriceRange(double, double) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getMaterialsByType(Material.MaterialType) - Method in interface com.university.bookstore.api.MaterialStore
  Gets all materials of a specific type.
getMaterialsByType(Material.MaterialType) - Method in class com.university.bookstore.composite.MaterialBundle
  Gets all materials of the specified type in this bundle.
getMaterialsByType(Material.MaterialType) - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/type/{type} - Get materials by type
getMaterialsByType(Material.MaterialType) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getMaterialsByType(Material.MaterialType) - Method in class com.university.bookstore.impl.MaterialStoreImpl
getMaterialsByType(Material.MaterialType) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getMaterialsByYear(int) - Method in interface com.university.bookstore.api.MaterialStore
  Gets materials published/released in a specific year.
getMaterialsByYear(int) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getMaterialsByYear(int) - Method in class com.university.bookstore.impl.MaterialStoreImpl
getMaterialsByYear(int) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getMaterialTitle() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
  Gets the title of the material.
getMaterialTypeCount(String) - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the count for a specific material type.
getMaterialTypeStatistics() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the material type statistics map.
getMaterialTypeStatistics() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets material type statistics.
getMaxDiscount() - Method in class com.university.bookstore.chain.DirectorHandler
getMaxDiscount() - Method in class com.university.bookstore.chain.DiscountHandler
  Gets the maximum discount this handler can approve.
getMaxDiscount() - Method in class com.university.bookstore.chain.ManagerHandler
getMaxDiscount() - Method in class com.university.bookstore.chain.VPHandler
getMaxPrice() - Method in class com.university.bookstore.iterator.PriceRangeIterator
  Gets the maximum price.
getMaxSize() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
getMaxSize() - Method in class com.university.bookstore.search.SearchResultCache
  Gets the maximum number of entries the cache can hold.
getMediaCount() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
getMediaMaterials() - Method in interface com.university.bookstore.api.MaterialStore
  Gets all materials that implement the Media interface.
getMediaMaterials() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getMediaMaterials() - Method in class com.university.bookstore.impl.MaterialStoreImpl
getMediaMaterials() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getMedianPrice() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
getMediaPercentage() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Gets the percentage of media materials.
getMinPrice() - Method in class com.university.bookstore.iterator.PriceRangeIterator
  Gets the minimum price.
getModernInventoryStatsAsync() - Method in interface com.university.bookstore.api.ModernMaterialStore
  Gets inventory statistics asynchronously.
getMostExpensive() - Method in interface com.university.bookstore.api.BookstoreAPI
  Finds the most expensive book in the inventory.
getMostExpensive() - Method in class com.university.bookstore.impl.BookstoreArrayList
getMostRecent() - Method in interface com.university.bookstore.api.BookstoreAPI
  Finds the most recently published book.
getMostRecent() - Method in class com.university.bookstore.impl.BookstoreArrayList
getNarrator() - Method in class com.university.bookstore.model.AudioBook
  Gets the narrator.
getNewestTimestamp() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
  Gets the timestamp of newest entry.
getNewPrice() - Method in class com.university.bookstore.observer.PriceChangedEvent
  Gets the new price.
getNext() - Method in class com.university.bookstore.chain.DiscountHandler
  Gets the next handler in the chain.
getObserverCount() - Method in class com.university.bookstore.observer.MaterialEventPublisher
getObserverCount() - Method in interface com.university.bookstore.observer.MaterialSubject
  Gets the number of registered observers.
getObserverName() - Method in class com.university.bookstore.observer.AnalyticsObserver
getObserverName() - Method in class com.university.bookstore.observer.AuditLogObserver
getObserverName() - Method in class com.university.bookstore.observer.InventoryObserver
getObserverName() - Method in interface com.university.bookstore.observer.MaterialObserver
  Gets the name of this observer for identification purposes.
getObservers() - Method in class com.university.bookstore.observer.MaterialEventPublisher
  Gets a list of all registered observers.
getObserversOfType(Class<T>) - Method in class com.university.bookstore.observer.MaterialEventPublisher
  Gets observers of a specific type.
getOldestTimestamp() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
  Gets the timestamp of oldest entry.
getOldPrice() - Method in class com.university.bookstore.observer.PriceChangedEvent
  Gets the old price.
getPages() - Method in class com.university.bookstore.model.PrintedBook
getPlaybackInfo() - Method in interface com.university.bookstore.model.Media
  Gets playback information as a formatted string.
getPrice() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current price.
getPrice() - Method in class com.university.bookstore.composite.MaterialBundle
getPrice() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets the total price of this component.
getPrice() - Method in class com.university.bookstore.composite.MaterialLeaf
getPrice() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
getPrice() - Method in class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
getPrice() - Method in class com.university.bookstore.decorator.GiftWrappingDecorator
getPrice() - Method in class com.university.bookstore.model.Book
  Gets the price of this book.
getPrice() - Method in class com.university.bookstore.model.Material
getPriceChange() - Method in class com.university.bookstore.observer.PriceChangedEvent
  Gets the price change amount.
getPriceChangedCount() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
  Gets the number of price changed events.
getPriceChangePercentage() - Method in class com.university.bookstore.observer.PriceChangedEvent
  Gets the price change percentage.
getPriceRange() - Method in class com.university.bookstore.iterator.PriceRangeIterator
  Gets the price range.
getPrintCount() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
getPrintPercentage() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Gets the percentage of print materials.
getProcessedRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets all processed discount requests.
getPublisher() - Method in class com.university.bookstore.model.Magazine
getPublisher() - Method in class com.university.bookstore.model.PrintedBook
getQuality() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current quality.
getQuality() - Method in class com.university.bookstore.model.AudioBook
getQuality() - Method in class com.university.bookstore.model.EBook
getQuality() - Method in interface com.university.bookstore.model.Media
  Gets the quality setting for the media.
getQuality() - Method in class com.university.bookstore.model.VideoMaterial
getRating() - Method in class com.university.bookstore.model.VideoMaterial
getReadingTimeMinutes() - Method in class com.university.bookstore.model.EBook
  Calculates estimated reading time in minutes based on average reading speed.
getReason() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the reason for the discount request.
getRecentMaterials(int) - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/recent?years={years} - Get recent materials
getRejectedRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
getRejectedRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets rejected discount requests.
getRejectionReason() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the rejection reason.
getRemainingCount() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Gets the number of materials remaining to be iterated.
getRemainingCount() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
getRemainingCount() - Method in class com.university.bookstore.iterator.PriceRangeIterator
getRemainingCount() - Method in class com.university.bookstore.iterator.PriceSortedIterator
getRemainingCount(MaterialIterator) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Gets the remaining count of materials in an iterator.
getRequestedDiscount() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the requested discount rate.
getRequestedDiscountPercentage() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the requested discount percentage.
getRequestsForCustomer(String) - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets discount requests for a specific customer.
getRequestsForMaterial(Material) - Method in class com.university.bookstore.chain.DiscountApprovalService
  Gets discount requests for a specific material.
getSavingsAmount() - Method in class com.university.bookstore.chain.DiscountRequest
  Calculates the savings amount if approved.
getSorted(Comparator<Material>) - Method in interface com.university.bookstore.api.MaterialStore
  Gets materials sorted by custom comparator.
getSorted(Comparator<Material>) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getSorted(Comparator<Material>) - Method in class com.university.bookstore.impl.MaterialStoreImpl
getSorted(Comparator<Material>) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getStatistics() - Method in class com.university.bookstore.impl.BookstoreArrayList
  Gets statistics about the inventory.
getStats() - Method in class com.university.bookstore.search.ModernSearchCache
  Gets cache statistics.
getStats() - Method in class com.university.bookstore.search.SearchResultCache
  Gets cache statistics including hit ratio and average age.
getStreamingBandwidth() - Method in class com.university.bookstore.model.VideoMaterial
  Gets bandwidth requirement for streaming in Mbps.
getSummary() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Creates a summary string for reporting.
getSummary() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets a summary of the discount request.
getSummary() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Creates a summary string.
getTargetType() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
  Gets the target type this iterator filters for.
getTimestamp() - Method in class com.university.bookstore.chain.DiscountRequest
  Gets the request timestamp.
getTimestamp() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
  Gets the timestamp of the event.
getTimestamp() - Method in class com.university.bookstore.observer.MaterialAddedEvent
getTimestamp() - Method in interface com.university.bookstore.observer.MaterialEvent
  Gets the timestamp when this event occurred.
getTimestamp() - Method in class com.university.bookstore.observer.PriceChangedEvent
getTitle() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current title.
getTitle() - Method in class com.university.bookstore.composite.MaterialBundle
getTitle() - Method in interface com.university.bookstore.composite.MaterialComponent
  Gets the title of this component.
getTitle() - Method in class com.university.bookstore.composite.MaterialLeaf
getTitle() - Method in class com.university.bookstore.model.Book
  Gets the title of this book.
getTitle() - Method in class com.university.bookstore.model.Material
getTotalBundles() - Method in class com.university.bookstore.composite.BundleService.BundleStats
getTotalBundleValue() - Method in class com.university.bookstore.composite.BundleService
  Gets the total value of all bundles.
getTotalCount() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
getTotalCount() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Gets the total number of materials that can be iterated.
getTotalCount() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
getTotalCount() - Method in class com.university.bookstore.iterator.PriceRangeIterator
getTotalCount() - Method in class com.university.bookstore.iterator.PriceSortedIterator
getTotalCount(MaterialIterator) - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
  Gets the total count of materials in an iterator.
getTotalDiscountAmount() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
  Calculates total savings from discounts (thread-safe).
getTotalDiscountAmount() - Method in class com.university.bookstore.impl.MaterialStoreImpl
  Calculates total savings from discounts.
getTotalDiscountAmount() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Calculates total savings from discounts.
getTotalDiscountedBundleValue() - Method in class com.university.bookstore.composite.BundleService
  Gets the total discounted value of all bundles.
getTotalDiscountedPrice() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the total discounted price of all components.
getTotalDiscountedValue() - Method in interface com.university.bookstore.api.MaterialStore
  Calculates total discounted inventory value.
getTotalDiscountedValue() - Method in class com.university.bookstore.composite.BundleService.BundleStats
getTotalDiscountedValue() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getTotalDiscountedValue() - Method in class com.university.bookstore.impl.MaterialStoreImpl
getTotalDiscountedValue() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getTotalEntries() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
  Gets the total number of entries.
getTotalEvents() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the total number of events.
getTotalEvents() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the total number of events processed.
getTotalEvents() - Method in class com.university.bookstore.observer.InventoryObserver
  Gets the total number of events processed.
getTotalHits() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
getTotalInventoryCount() - Method in class com.university.bookstore.observer.InventoryObserver
  Gets the total number of materials in inventory.
getTotalInventoryValue() - Method in interface com.university.bookstore.api.MaterialStore
  Calculates total inventory value.
getTotalInventoryValue() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
getTotalInventoryValue() - Method in class com.university.bookstore.impl.MaterialStoreImpl
getTotalInventoryValue() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
getTotalInventoryValue() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the total inventory value.
getTotalInventoryValue() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the total inventory value.
getTotalInventoryValue() - Method in class com.university.bookstore.observer.InventoryObserver
  Gets the total value of all materials in inventory.
getTotalInventoryValueAsync() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Gets total inventory value asynchronously.
getTotalItems() - Method in class com.university.bookstore.composite.BundleService.BundleStats
getTotalPrice() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the total price of all components.
getTotalRequests() - Method in class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
getTotalRequests() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
getTotalSavings() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Gets the total savings from the bundle discount.
getTotalSavings() - Method in class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
getTotalSavings() - Method in class com.university.bookstore.composite.BundleService.BundleStats
getTotalSavings() - Method in class com.university.bookstore.composite.MaterialBundle
  Calculates the total savings from the bundle discount.
getTotalShippingCost() - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Gets the total shipping cost calculated so far.
getTotalValue() - Method in class com.university.bookstore.composite.BundleService.BundleStats
getTotalValue(String) - Method in class com.university.bookstore.observer.InventoryObserver
  Gets the total value for a specific material.
getType() - Method in class com.university.bookstore.composite.MaterialLeaf
  Gets the material type.
getType() - Method in class com.university.bookstore.model.Material
getUniqueMaterialCount() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
  Gets the number of unique materials.
getUniqueMaterialCount() - Method in class com.university.bookstore.observer.AnalyticsObserver
  Gets the number of unique materials.
getUniqueMaterialCount() - Method in class com.university.bookstore.observer.InventoryObserver
  Gets the number of unique materials in inventory.
getUniqueTypes() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
getVideoType() - Method in class com.university.bookstore.model.VideoMaterial
getWordCount() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current word count.
getWordCount() - Method in class com.university.bookstore.model.EBook
  Gets the word count of the book.
getWrappingStyle() - Method in class com.university.bookstore.decorator.GiftWrappingDecorator
  Gets the wrapping style.
getYear() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current year.
getYear() - Method in class com.university.bookstore.composite.MaterialLeaf
  Gets the material year.
getYear() - Method in class com.university.bookstore.model.Book
  Gets the publication year of this book.
getYear() - Method in class com.university.bookstore.model.Material
GiftWrappingDecorator - Class in com.university.bookstore.decorator
  Decorator that adds gift wrapping functionality to materials.
GiftWrappingDecorator(Material, String) - Constructor for class com.university.bookstore.decorator.GiftWrappingDecorator
  Creates a new gift wrapping decorator.
groupByType() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
  Groups materials by type for reporting (thread-safe).
groupByType() - Method in class com.university.bookstore.impl.MaterialStoreImpl
  Groups materials by type for reporting.
groupByType() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Groups materials by type for reporting.

## H

handleRequest(DiscountRequest) - Method in class com.university.bookstore.chain.DirectorHandler
handleRequest(DiscountRequest) - Method in class com.university.bookstore.chain.DiscountHandler
  Handles a discount request.
handleRequest(DiscountRequest) - Method in class com.university.bookstore.chain.ManagerHandler
handleRequest(DiscountRequest) - Method in class com.university.bookstore.chain.VPHandler
hasAnnotations() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Checks if the material has any annotations.
hasAnyCriteria() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Checks if any criteria is specified.
hasComponents() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Checks if the bundle has any components.
hasDecorators() - Method in class com.university.bookstore.decorator.MaterialDecorator
  Checks if this material has any decorators applied.
hasEnhancement(Material, Class<? extends MaterialDecorator>) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Checks if a material has a specific type of enhancement.
hasEnhancements(Material) - Method in class com.university.bookstore.decorator.MaterialEnhancementService
  Checks if a material has any enhancements applied.
hashCode() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Returns a hash code value for this object.
hashCode() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns a hash code value for this object.
hashCode() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns a hash code value for this object.
hashCode() - Method in class com.university.bookstore.chain.DiscountRequest
hashCode() - Method in class com.university.bookstore.composite.MaterialBundle
hashCode() - Method in class com.university.bookstore.composite.MaterialLeaf
hashCode() - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
hashCode() - Method in class com.university.bookstore.decorator.ExpeditedDeliveryDecorator
hashCode() - Method in class com.university.bookstore.decorator.GiftWrappingDecorator
hashCode() - Method in class com.university.bookstore.decorator.MaterialDecorator
hashCode() - Method in class com.university.bookstore.model.Book
  Generates hash code based on ISBN.
hashCode() - Method in class com.university.bookstore.model.EBook
hashCode() - Method in class com.university.bookstore.model.Material
hashCode() - Method in class com.university.bookstore.observer.MaterialAddedEvent
hashCode() - Method in class com.university.bookstore.observer.PriceChangedEvent
hashCode() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns a hash code value for this object.
hasNext() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Checks if there are more materials to iterate over.
hasNext() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
hasNext() - Method in class com.university.bookstore.iterator.PriceRangeIterator
hasNext() - Method in class com.university.bookstore.iterator.PriceSortedIterator
hasNoObservers() - Method in class com.university.bookstore.observer.MaterialEventPublisher
hasNoObservers() - Method in interface com.university.bookstore.observer.MaterialSubject
  Checks if any observers are registered.
hasObserver(MaterialObserver) - Method in class com.university.bookstore.observer.MaterialEventPublisher
  Checks if a specific observer is registered.
hasPrefix(String) - Method in class com.university.bookstore.search.MaterialTrie
  Checks if any materials exist with titles starting with the given prefix.
hasSubtitles() - Method in class com.university.bookstore.model.VideoMaterial
HD - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality
HIGH - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality
hitCount() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `hitCount` record component.
hitRate() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `hitRate` record component.

## I

insert(Material) - Method in class com.university.bookstore.search.MaterialTrie
  Inserts a material into the trie using its title as the key.
invalidate(String) - Method in class com.university.bookstore.search.ModernSearchCache
  Invalidates a cache entry.
invalidateAll() - Method in class com.university.bookstore.search.ModernSearchCache
  Invalidates all cache entries.
invalidateIf(Predicate<String>) - Method in class com.university.bookstore.search.ModernSearchCache
  Invalidates entries matching a predicate.
InvalidMaterialException(String) - Constructor for exception class com.university.bookstore.service.MaterialService.InvalidMaterialException
InvalidMaterialException(String, Throwable) - Constructor for exception class com.university.bookstore.service.MaterialService.InvalidMaterialException
InventoryObserver - Class in com.university.bookstore.observer
  Observer that tracks inventory changes for materials.
InventoryObserver() - Constructor for class com.university.bookstore.observer.InventoryObserver
  Creates a new inventory observer.
InventoryStats(int, double, double, int, int, int) - Constructor for class com.university.bookstore.api.MaterialStore.InventoryStats
inventoryValue() - Method in interface com.university.bookstore.api.BookstoreAPI
  Calculates the total value of all books in inventory.
inventoryValue() - Method in class com.university.bookstore.impl.BookstoreArrayList
isApproved() - Method in class com.university.bookstore.chain.DiscountRequest
  Checks if the request is approved.
isAscending() - Method in class com.university.bookstore.iterator.PriceSortedIterator
  Gets the sort order.
isAtBeginning() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Checks if the iterator is at the beginning.
isAtBeginning() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
isAtBeginning() - Method in class com.university.bookstore.iterator.PriceRangeIterator
isAtBeginning() - Method in class com.university.bookstore.iterator.PriceSortedIterator
isAtEnd() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Checks if the iterator is at the end.
isAtEnd() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
isAtEnd() - Method in class com.university.bookstore.iterator.PriceRangeIterator
isAtEnd() - Method in class com.university.bookstore.iterator.PriceSortedIterator
isCompleteSuccess() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Checks if all operations were successful.
isComposite() - Method in interface com.university.bookstore.composite.MaterialComponent
  Checks if this component is a composite (bundle).
isDrmEnabled() - Method in class com.university.bookstore.builder.EBookBuilder
  Gets the current DRM enabled status.
isDrmEnabled() - Method in class com.university.bookstore.model.EBook
  Checks if DRM is enabled.
isEmpty() - Method in interface com.university.bookstore.api.MaterialStore
  Checks if the inventory is empty.
isEmpty() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Checks if the inventory is empty.
isEmpty() - Method in class com.university.bookstore.composite.BundleService
  Checks if any bundles exist.
isEmpty() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
isEmpty() - Method in class com.university.bookstore.impl.MaterialStoreImpl
isEmpty() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
isEmpty() - Method in class com.university.bookstore.search.MaterialTrie
  Checks if the trie is empty.
isEmpty() - Method in class com.university.bookstore.search.ModernSearchCache
  Checks if the cache is empty.
isEmpty() - Method in class com.university.bookstore.search.SearchResultCache
  Checks if the cache is empty.
isFeatureLength() - Method in class com.university.bookstore.model.VideoMaterial
  Checks if this is a feature-length video.
isFull() - Method in class com.university.bookstore.search.SearchResultCache
  Checks if the cache is full.
isHardcover() - Method in class com.university.bookstore.model.PrintedBook
isIndexEmpty() - Method in class com.university.bookstore.search.CachedSearchService
  Checks if the search index is empty.
isLeaf() - Method in class com.university.bookstore.composite.MaterialBundle
isLeaf() - Method in interface com.university.bookstore.composite.MaterialComponent
  Checks if this component is a leaf (individual material).
isLeaf() - Method in class com.university.bookstore.composite.MaterialLeaf
isPriceDecrease() - Method in class com.university.bookstore.observer.PriceChangedEvent
  Checks if the price decreased.
isPriceIncrease() - Method in class com.university.bookstore.observer.PriceChangedEvent
  Checks if the price increased.
isStreamingOnly() - Method in class com.university.bookstore.model.AudioBook
isStreamingOnly() - Method in class com.university.bookstore.model.EBook
isStreamingOnly() - Method in interface com.university.bookstore.model.Media
  Checks if the media requires an internet connection.
isStreamingOnly() - Method in class com.university.bookstore.model.VideoMaterial
isUnabridged() - Method in class com.university.bookstore.model.AudioBook
  Checks if unabridged.

## J

JsonMaterialRepository - Class in com.university.bookstore.repository
  JSON-based implementation of MaterialRepository (Adapter in hexagonal architecture).
JsonMaterialRepository(String) - Constructor for class com.university.bookstore.repository.JsonMaterialRepository
  Creates a new JSON material repository.

## L

loadCount() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `loadCount` record component.
LoggerFactory - Class in com.university.bookstore.utils
  Factory for creating SLF4J loggers with consistent configuration.
LOW - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality

## M

Magazine - Class in com.university.bookstore.model
  Represents a magazine in the store inventory.
Magazine(String, String, String, double, int, int, String, String) - Constructor for class com.university.bookstore.model.Magazine
  Creates a new Magazine.
MAGAZINE - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
Magazine.PublicationFrequency - Enum Class in com.university.bookstore.model
  Frequency of magazine publication.
main(String[]) - Static method in class com.university.bookstore.BookstoreApplication
  Main entry point for the Spring Boot application.
main(String[]) - Static method in class com.university.bookstore.demo.PolymorphismDemo
ManagerHandler - Class in com.university.bookstore.chain
  Manager-level discount approval handler.
ManagerHandler() - Constructor for class com.university.bookstore.chain.ManagerHandler
Material - Class in com.university.bookstore.model
  Abstract base class representing any material in the store inventory.
Material.MaterialType - Enum Class in com.university.bookstore.model
  Enumeration of material types for polymorphic behavior.
MaterialAddedEvent - Class in com.university.bookstore.observer
  Event that occurs when a material is added to the system.
MaterialAddedEvent(Material) - Constructor for class com.university.bookstore.observer.MaterialAddedEvent
  Creates a new material added event.
MaterialBuilder<T> - Interface in com.university.bookstore.builder
  Builder interface for creating Material instances.
MaterialBundle - Class in com.university.bookstore.composite
  Composite component in the Composite pattern.
MaterialBundle(String, double) - Constructor for class com.university.bookstore.composite.MaterialBundle
  Creates a new material bundle with the specified name and discount.
MaterialBundleBuilder - Class in com.university.bookstore.builder
  Builder for creating MaterialBundle instances with a fluent interface.
MaterialBundleBuilder() - Constructor for class com.university.bookstore.builder.MaterialBundleBuilder
MaterialComponent - Interface in com.university.bookstore.composite
  Component interface for the Composite pattern.
MaterialController - Class in com.university.bookstore.controller
  REST Controller for Material management operations.
MaterialController(MaterialStore) - Constructor for class com.university.bookstore.controller.MaterialController
  Constructor with dependency injection of MaterialStore.
MaterialDecorator - Class in com.university.bookstore.decorator
  Abstract base class for material decorators in the Decorator pattern.
MaterialDecorator(Material) - Constructor for class com.university.bookstore.decorator.MaterialDecorator
  Creates a new material decorator wrapping the specified material.
MaterialDirector - Class in com.university.bookstore.builder
  Director class that orchestrates the construction of complex Material objects using various builders.
MaterialDirector(EBookBuilder, MaterialBundleBuilder) - Constructor for class com.university.bookstore.builder.MaterialDirector
  Constructs a MaterialDirector with the specified builders.
MaterialEnhancementService - Class in com.university.bookstore.decorator
  Service for managing material enhancements using the Decorator pattern.
MaterialEnhancementService() - Constructor for class com.university.bookstore.decorator.MaterialEnhancementService
MaterialEvent - Interface in com.university.bookstore.observer
  Base interface for material-related domain events in the Observer pattern.
MaterialEventPublisher - Class in com.university.bookstore.observer
  Concrete implementation of MaterialSubject that publishes material events to observers.
MaterialEventPublisher() - Constructor for class com.university.bookstore.observer.MaterialEventPublisher
  Creates a new material event publisher.
materialExists(String) - Method in class com.university.bookstore.service.MaterialService
  Checks if a material exists in the system.
MaterialFactory - Class in com.university.bookstore.factory
  Factory class for creating Material instances.
MaterialFactory() - Constructor for class com.university.bookstore.factory.MaterialFactory
MaterialIterator - Interface in com.university.bookstore.iterator
  Iterator interface for traversing collections of materials.
MaterialIteratorFactory - Class in com.university.bookstore.iterator
  Factory for creating different types of material iterators.
MaterialIteratorFactory() - Constructor for class com.university.bookstore.iterator.MaterialIteratorFactory
MaterialLeaf - Class in com.university.bookstore.composite
  Leaf component in the Composite pattern.
MaterialLeaf(Material) - Constructor for class com.university.bookstore.composite.MaterialLeaf
  Creates a new material leaf wrapping the specified material.
MaterialNotFoundException(String) - Constructor for exception class com.university.bookstore.service.MaterialService.MaterialNotFoundException
MaterialNotFoundException(String, Throwable) - Constructor for exception class com.university.bookstore.service.MaterialService.MaterialNotFoundException
MaterialObserver - Interface in com.university.bookstore.observer
  Observer interface for material-related events in the Observer pattern.
MaterialRepository - Interface in com.university.bookstore.repository
  Port interface for material persistence operations in hexagonal architecture.
MaterialService - Class in com.university.bookstore.service
  Domain service that orchestrates business logic for material management.
MaterialService(MaterialRepository) - Constructor for class com.university.bookstore.service.MaterialService
  Creates a new material service with the specified repository.
MaterialService.InvalidMaterialException - Exception Class in com.university.bookstore.service
  Exception thrown when a material is invalid according to business rules.
MaterialService.MaterialNotFoundException - Exception Class in com.university.bookstore.service
  Exception thrown when a requested material is not found.
materialStore() - Method in class com.university.bookstore.BookstoreApplication
  Configures the MaterialStore bean using the existing ModernConcurrentMaterialStore.
MaterialStore - Interface in com.university.bookstore.api
  Interface defining operations for a polymorphic material store that demonstrates interface segregation and dependency inversion principles.
MaterialStore.InventoryStats - Class in com.university.bookstore.api
  Statistics class for inventory analysis.
MaterialStoreImpl - Class in com.university.bookstore.impl
  Implementation of MaterialStore using ArrayList with polymorphic handling.
MaterialStoreImpl() - Constructor for class com.university.bookstore.impl.MaterialStoreImpl
  Creates a new empty material store.
MaterialStoreImpl(Collection<Material>) - Constructor for class com.university.bookstore.impl.MaterialStoreImpl
  Creates a material store with initial materials.
MaterialSubject - Interface in com.university.bookstore.observer
  Subject interface for material events in the Observer pattern.
MaterialsWrapper - Class in com.university.bookstore.repository
  Wrapper class to ensure proper JSON serialization of Material polymorphic types.
MaterialsWrapper() - Constructor for class com.university.bookstore.repository.MaterialsWrapper
MaterialsWrapper(List<Material>) - Constructor for class com.university.bookstore.repository.MaterialsWrapper
MaterialTrie - Class in com.university.bookstore.search
  Trie (Prefix Tree) data structure for efficient prefix-based material searching.
MaterialTrie() - Constructor for class com.university.bookstore.search.MaterialTrie
  Creates a new empty material trie.
MaterialTypeIterator - Class in com.university.bookstore.iterator
  Iterator that filters materials by type.
MaterialTypeIterator(List<Material>, Material.MaterialType) - Constructor for class com.university.bookstore.iterator.MaterialTypeIterator
  Creates a new material type iterator.
MaterialVisitor - Interface in com.university.bookstore.visitor
  Visitor interface for implementing the Visitor pattern.
maxPrice() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `maxPrice` record component.
Media - Interface in com.university.bookstore.model
  Interface for materials with multimedia content.
Media.MediaQuality - Enum Class in com.university.bookstore.model
  Quality levels for media content.
mediaCount() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns the value of the `mediaCount` record component.
medianPrice() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns the value of the `medianPrice` record component.
MEDIUM - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality
merge(Book[], Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Merges two book arrays into one, preserving all elements.
minPrice() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `minPrice` record component.
missCount() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `missCount` record component.
ModernConcurrentMaterialStore - Class in com.university.bookstore.impl
  Modern thread-safe implementation of MaterialStore using best practices.
ModernConcurrentMaterialStore() - Constructor for class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Creates a new modern thread-safe material store.
ModernConcurrentMaterialStore(Collection<Material>) - Constructor for class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Creates a material store with initial materials.
ModernInventoryStats(int, double, double, int, int, int) - Constructor for record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Compact constructor for validation.
ModernJsonMaterialRepository - Class in com.university.bookstore.repository
  Modern JSON-based implementation of MaterialRepository using best practices.
ModernJsonMaterialRepository(String) - Constructor for class com.university.bookstore.repository.ModernJsonMaterialRepository
  Creates a new modern JSON material repository.
ModernMaterialStore - Interface in com.university.bookstore.api
  Modern interface for polymorphic material store with async operations.
ModernMaterialStore.BatchOperationResult - Record Class in com.university.bookstore.api
  Batch operation result record.
ModernMaterialStore.ModernInventoryStats - Record Class in com.university.bookstore.api
  Modern InventoryStats using Java record for immutability.
ModernMaterialStore.SearchCriteria - Record Class in com.university.bookstore.api
  Search criteria record for complex searches.
ModernMaterialStore.SearchCriteria.Builder - Class in com.university.bookstore.api
  Builder for SearchCriteria.
ModernSearchCache - Class in com.university.bookstore.search
  Modern high-performance cache implementation with advanced features.
ModernSearchCache() - Constructor for class com.university.bookstore.search.ModernSearchCache
  Creates a new modern cache with default settings.
ModernSearchCache(int, Duration, Duration) - Constructor for class com.university.bookstore.search.ModernSearchCache
  Creates a new modern cache with custom settings.
ModernSearchCache.CacheStats - Record Class in com.university.bookstore.search
  Cache statistics record.
MONTHLY - Enum constant in enum class com.university.bookstore.model.Magazine.PublicationFrequency
MOVIE - Enum constant in enum class com.university.bookstore.model.VideoMaterial.VideoType
MUSIC_ALBUM - Enum constant in enum class com.university.bookstore.model.Material.MaterialType

## N

next() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Gets the next material in the iteration.
next() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
next() - Method in class com.university.bookstore.iterator.PriceRangeIterator
next() - Method in class com.university.bookstore.iterator.PriceSortedIterator
notifyObservers(MaterialEvent) - Method in class com.university.bookstore.observer.MaterialEventPublisher
notifyObservers(MaterialEvent) - Method in interface com.university.bookstore.observer.MaterialSubject
  Notifies all observers of a material event.

## O

onAdded(MaterialSubject) - Method in interface com.university.bookstore.observer.MaterialObserver
  Called when the observer is added to a subject.
onEvent(MaterialEvent) - Method in class com.university.bookstore.observer.AnalyticsObserver
onEvent(MaterialEvent) - Method in class com.university.bookstore.observer.AuditLogObserver
onEvent(MaterialEvent) - Method in class com.university.bookstore.observer.InventoryObserver
onEvent(MaterialEvent) - Method in interface com.university.bookstore.observer.MaterialObserver
  Called when a material event occurs.
onRemoved(MaterialSubject) - Method in interface com.university.bookstore.observer.MaterialObserver
  Called when the observer is removed from a subject.

## P

parallelSearchAsync(String, String, Material.MaterialType) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Performs parallel search across multiple criteria.
peek() - Method in class com.university.bookstore.iterator.PriceSortedIterator
  Gets the current material without advancing the iterator.
peekNext() - Method in class com.university.bookstore.iterator.PriceSortedIterator
  Gets the next material without advancing the iterator.
performMaintenance() - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Performs maintenance operations like cleanup and optimization.
PHYSICAL - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality
PODCAST - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
PolymorphismDemo - Class in com.university.bookstore.demo
  Demonstration class showing polymorphism and OOP best practices.
PolymorphismDemo() - Constructor for class com.university.bookstore.demo.PolymorphismDemo
PriceChangedEvent - Class in com.university.bookstore.observer
  Event that occurs when a material's price changes.
PriceChangedEvent(Material, double, double) - Constructor for class com.university.bookstore.observer.PriceChangedEvent
  Creates a new price changed event.
PriceRangeIterator - Class in com.university.bookstore.iterator
  Iterator that filters materials by price range.
PriceRangeIterator(List<Material>, double, double) - Constructor for class com.university.bookstore.iterator.PriceRangeIterator
  Creates a new price range iterator.
PriceSortedIterator - Class in com.university.bookstore.iterator
  Iterator that returns materials sorted by price.
PriceSortedIterator(List<Material>, boolean) - Constructor for class com.university.bookstore.iterator.PriceSortedIterator
  Creates a new price sorted iterator.
printAuditLog() - Method in class com.university.bookstore.observer.AuditLogObserver
  Prints the audit log to the console.
printCount() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns the value of the `printCount` record component.
PrintedBook - Class in com.university.bookstore.model
  Represents a physical printed book in the bookstore inventory.
PrintedBook(String, String, String, double, int) - Constructor for class com.university.bookstore.model.PrintedBook
  Convenience constructor for backward compatibility.
PrintedBook(String, String, String, double, int, int, String, boolean) - Constructor for class com.university.bookstore.model.PrintedBook
  Creates a new PrintedBook with validation.
publishEvent(MaterialEvent) - Method in class com.university.bookstore.observer.MaterialEventPublisher
  Publishes a custom material event.
publishMaterialAdded(Material) - Method in class com.university.bookstore.observer.MaterialEventPublisher
  Publishes a material added event.
publishPriceChanged(Material, double, double) - Method in class com.university.bookstore.observer.MaterialEventPublisher
  Publishes a price changed event.
put(String, List<Material>) - Method in class com.university.bookstore.search.ModernSearchCache
  Puts a value in the cache.
put(String, List<Material>) - Method in class com.university.bookstore.search.SearchResultCache
  Stores search results in the cache with the given key.

## Q

QUARTERLY - Enum constant in enum class com.university.bookstore.model.Magazine.PublicationFrequency

## R

refresh(String, Function<String, List<Material>>) - Method in class com.university.bookstore.search.ModernSearchCache
  Refreshes a cache entry asynchronously.
refreshIndex() - Method in class com.university.bookstore.search.CachedSearchService
  Refreshes the search index from the repository.
remove(Material) - Method in class com.university.bookstore.search.MaterialTrie
  Removes a material from the trie.
remove(String) - Method in class com.university.bookstore.search.SearchResultCache
  Removes the entry with the given key from the cache.
removeAnnotation(int) - Method in class com.university.bookstore.decorator.DigitalAnnotationDecorator
  Removes an annotation by index.
removeBundle(String) - Method in class com.university.bookstore.composite.BundleService
  Removes a bundle by name.
removeByIsbn(String) - Method in interface com.university.bookstore.api.BookstoreAPI
  Removes a book from the inventory by ISBN.
removeByIsbn(String) - Method in class com.university.bookstore.impl.BookstoreArrayList
removeComponent(MaterialComponent) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Removes a component from the bundle.
removeComponent(MaterialComponent) - Method in class com.university.bookstore.composite.MaterialBundle
  Removes a component from this bundle.
removeDuplicates(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Removes duplicate books based on ISBN.
removeFromBundle(String, Material) - Method in class com.university.bookstore.composite.BundleService
  Removes a material from the specified bundle.
removeMaterial(Material) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Removes a material from the bundle.
removeMaterial(Material) - Method in class com.university.bookstore.search.CachedSearchService
  Removes a material from the search index and invalidates relevant cache entries.
removeMaterial(String) - Method in interface com.university.bookstore.api.MaterialStore
  Removes a material by its ID.
removeMaterial(String) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
removeMaterial(String) - Method in class com.university.bookstore.impl.MaterialStoreImpl
removeMaterial(String) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
removeMaterial(String) - Method in class com.university.bookstore.service.MaterialService
  Removes a material from the system.
removeMaterialsBatchAsync(List<String>) - Method in interface com.university.bookstore.api.ModernMaterialStore
  Removes multiple materials in batch.
removeObserver(MaterialObserver) - Method in class com.university.bookstore.observer.MaterialEventPublisher
removeObserver(MaterialObserver) - Method in interface com.university.bookstore.observer.MaterialSubject
  Removes an observer from receiving material events.
RepositoryException - Exception Class in com.university.bookstore.repository
  Exception thrown when repository operations fail.
RepositoryException(String) - Constructor for exception class com.university.bookstore.repository.RepositoryException
  Creates a new repository exception with the specified message.
RepositoryException(String, Throwable) - Constructor for exception class com.university.bookstore.repository.RepositoryException
  Creates a new repository exception with the specified message and cause.
RepositoryException(Throwable) - Constructor for exception class com.university.bookstore.repository.RepositoryException
  Creates a new repository exception with the specified cause.
requestDiscount(Material, double, String, String) - Method in class com.university.bookstore.chain.DiscountApprovalService
  Processes a discount request through the approval chain.
reset() - Method in interface com.university.bookstore.builder.ComponentBuilder
  Resets the builder to its initial state.
reset() - Method in class com.university.bookstore.builder.EBookBuilder
reset() - Method in interface com.university.bookstore.builder.MaterialBuilder
  Resets the builder to its initial state.
reset() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
reset() - Method in interface com.university.bookstore.iterator.MaterialIterator
  Resets the iterator to the beginning.
reset() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
reset() - Method in class com.university.bookstore.iterator.PriceRangeIterator
reset() - Method in class com.university.bookstore.iterator.PriceSortedIterator
reset() - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Resets the shipping cost calculator for a new calculation.
resetStats() - Method in class com.university.bookstore.search.ModernSearchCache
  Resets cache statistics.
restoreFromBackup(String) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Restores data from a backup file.

## S

save(Material) - Method in class com.university.bookstore.repository.JsonMaterialRepository
save(Material) - Method in interface com.university.bookstore.repository.MaterialRepository
  Saves a material to the repository.
save(Material) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
saveAll(Collection<Material>) - Method in class com.university.bookstore.repository.ModernJsonMaterialRepository
  Saves multiple materials in batch for better performance.
searchByCreator(String) - Method in interface com.university.bookstore.api.MaterialStore
  Searches materials by creator (author/director/publisher).
searchByCreator(String) - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/search/creator?q={query} - Search materials by creator
searchByCreator(String) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
searchByCreator(String) - Method in class com.university.bookstore.impl.MaterialStoreImpl
searchByCreator(String) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
searchByPrefix(String) - Method in class com.university.bookstore.search.CachedSearchService
  Searches for materials by title prefix with caching.
searchByPrefix(String) - Method in class com.university.bookstore.search.MaterialTrie
  Searches for materials with titles that start with the given prefix.
searchByPrefixWithLimit(String, int) - Method in class com.university.bookstore.search.CachedSearchService
  Searches for materials by title prefix with result limit and caching.
searchByPrefixWithLimit(String, int) - Method in class com.university.bookstore.search.MaterialTrie
  Searches for materials with titles that start with the given prefix, limited to a maximum number of results.
searchByTitle(String) - Method in interface com.university.bookstore.api.MaterialStore
  Searches materials by title (case-insensitive partial match).
searchByTitle(String) - Method in class com.university.bookstore.controller.MaterialController
  GET /api/materials/search/title?q={query} - Search materials by title
searchByTitle(String) - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
searchByTitle(String) - Method in class com.university.bookstore.impl.MaterialStoreImpl
searchByTitle(String) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
searchByTitleAsync(String) - Method in interface com.university.bookstore.api.ModernMaterialStore
  Searches by title asynchronously.
searchByTitleAsync(String) - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
  Searches by title asynchronously.
SearchCriteria(Optional<String>, Optional<String>, Optional<Material.MaterialType>, Optional<Double>, Optional<Double>, Optional<Integer>, Optional<Integer>) - Constructor for record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Creates an instance of a `SearchCriteria` record class.
SearchResultCache - Class in com.university.bookstore.search
  LRU (Least Recently Used) cache for search results.
SearchResultCache(int) - Constructor for class com.university.bookstore.search.SearchResultCache
  Creates a new search result cache with the specified maximum size.
SearchResultCache.CacheStats - Class in com.university.bookstore.search
  Statistics class for cache performance monitoring.
setApproved(boolean) - Method in class com.university.bookstore.chain.DiscountRequest
  Sets the approval status.
setApprovedBy(String) - Method in class com.university.bookstore.chain.DiscountRequest
  Sets who approved the request.
setAuthor(String) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook author.
setBundleDiscount(double) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Sets the bundle discount rate.
setBundleDiscountPercent(double) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Sets the bundle discount percentage.
setBundleName(String) - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Sets the bundle name.
setDrmEnabled(boolean) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the DRM enabled status.
setFileFormat(String) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook file format.
setFileSize(double) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook file size.
setHighQuality() - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the quality to high.
setId(String) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook ID.
setLargeDiscount() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Sets a 30% discount.
setLowQuality() - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the quality to low.
setMaterials(List<Material>) - Method in class com.university.bookstore.repository.MaterialsWrapper
setMediumDiscount() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Sets a 20% discount.
setNext(DiscountHandler) - Method in class com.university.bookstore.chain.DiscountHandler
  Sets the next handler in the chain.
setPrice(double) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook price.
setQuality(Media.MediaQuality) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook quality.
setRejectionReason(String) - Method in class com.university.bookstore.chain.DiscountRequest
  Sets the rejection reason.
setSmallDiscount() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
  Sets a 10% discount.
setTitle(String) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook title.
setWordCount(int) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook word count.
setYear(int) - Method in class com.university.bookstore.builder.EBookBuilder
  Sets the eBook publication year.
ShippingCostCalculator - Class in com.university.bookstore.visitor
  Concrete visitor implementation for calculating shipping costs.
ShippingCostCalculator() - Constructor for class com.university.bookstore.visitor.ShippingCostCalculator
SHORT_FILM - Enum constant in enum class com.university.bookstore.model.VideoMaterial.VideoType
size() - Method in interface com.university.bookstore.api.BookstoreAPI
  Gets the number of books in the inventory.
size() - Method in interface com.university.bookstore.api.MaterialStore
  Gets the number of materials in inventory.
size() - Method in class com.university.bookstore.impl.BookstoreArrayList
size() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
size() - Method in class com.university.bookstore.impl.MaterialStoreImpl
size() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
size() - Method in class com.university.bookstore.search.MaterialTrie
  Gets the total number of materials in the trie.
size() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `size` record component.
size() - Method in class com.university.bookstore.search.ModernSearchCache
  Gets the current cache size.
size() - Method in class com.university.bookstore.search.SearchResultCache
  Gets the current number of entries in the cache.
snapshotArray() - Method in interface com.university.bookstore.api.BookstoreAPI
  Creates a defensive copy of the inventory as an array.
snapshotArray() - Method in class com.university.bookstore.impl.BookstoreArrayList
sortByPrice() - Method in class com.university.bookstore.impl.BookstoreArrayList
  Sorts the inventory by price (ascending).
sortByPrice(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Sorts books by price in ascending order (in-place).
sortByTitle() - Method in class com.university.bookstore.impl.BookstoreArrayList
  Sorts the inventory by title (alphabetical order).
sortByYear() - Method in class com.university.bookstore.impl.BookstoreArrayList
  Sorts the inventory by year (ascending).
sortByYear(Book[]) - Static method in class com.university.bookstore.utils.BookArrayUtils
  Sorts books by year in ascending order (in-place).
STANDARD - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality
successful() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Returns the value of the `successful` record component.
successRate() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Gets the success rate.

## T

title() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `title` record component.
toString() - Method in class com.university.bookstore.api.MaterialStore.InventoryStats
toString() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Returns a string representation of this record class.
toString() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns a string representation of this record class.
toString() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns a string representation of this record class.
toString() - Method in class com.university.bookstore.builder.EBookBuilder
toString() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
toString() - Method in class com.university.bookstore.chain.DiscountApprovalService.ApprovalStats
toString() - Method in class com.university.bookstore.chain.DiscountApprovalService
toString() - Method in class com.university.bookstore.chain.DiscountHandler
toString() - Method in class com.university.bookstore.chain.DiscountRequest
toString() - Method in class com.university.bookstore.composite.BundleService.BundleStats
toString() - Method in class com.university.bookstore.composite.BundleService
toString() - Method in class com.university.bookstore.composite.MaterialBundle
toString() - Method in class com.university.bookstore.composite.MaterialLeaf
toString() - Method in class com.university.bookstore.decorator.MaterialDecorator
toString() - Method in class com.university.bookstore.decorator.MaterialEnhancementService
toString() - Method in class com.university.bookstore.impl.BookstoreArrayList
toString() - Method in class com.university.bookstore.impl.ConcurrentMaterialStore
toString() - Method in class com.university.bookstore.impl.MaterialStoreImpl
toString() - Method in class com.university.bookstore.impl.ModernConcurrentMaterialStore
toString() - Method in class com.university.bookstore.iterator.MaterialIteratorFactory
toString() - Method in class com.university.bookstore.iterator.MaterialTypeIterator
toString() - Method in class com.university.bookstore.iterator.PriceRangeIterator
toString() - Method in class com.university.bookstore.iterator.PriceSortedIterator
toString() - Method in class com.university.bookstore.model.AudioBook
toString() - Method in class com.university.bookstore.model.Book
  Returns a human-readable string representation of this book.
toString() - Method in class com.university.bookstore.model.EBook
toString() - Method in enum class com.university.bookstore.model.Magazine.PublicationFrequency
toString() - Method in class com.university.bookstore.model.Magazine
toString() - Method in class com.university.bookstore.model.Material
toString() - Method in enum class com.university.bookstore.model.Media.MediaQuality
toString() - Method in class com.university.bookstore.model.PrintedBook
toString() - Method in class com.university.bookstore.model.VideoMaterial
toString() - Method in enum class com.university.bookstore.model.VideoMaterial.VideoType
toString() - Method in class com.university.bookstore.observer.AnalyticsObserver.AnalyticsData
toString() - Method in class com.university.bookstore.observer.AnalyticsObserver
toString() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogEntry
toString() - Method in class com.university.bookstore.observer.AuditLogObserver.AuditLogStats
toString() - Method in class com.university.bookstore.observer.AuditLogObserver
toString() - Method in class com.university.bookstore.observer.InventoryObserver
toString() - Method in class com.university.bookstore.observer.MaterialAddedEvent
toString() - Method in class com.university.bookstore.observer.MaterialEventPublisher
toString() - Method in class com.university.bookstore.observer.PriceChangedEvent
toString() - Method in class com.university.bookstore.search.CachedSearchService
toString() - Method in class com.university.bookstore.search.MaterialTrie
toString() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns a string representation of this record class.
toString() - Method in class com.university.bookstore.search.SearchResultCache.CacheStats
toString() - Method in class com.university.bookstore.search.SearchResultCache
totalAccessCount() - Method in record class com.university.bookstore.search.ModernSearchCache.CacheStats
  Returns the value of the `totalAccessCount` record component.
totalCount() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns the value of the `totalCount` record component.
totalOperations() - Method in record class com.university.bookstore.api.ModernMaterialStore.BatchOperationResult
  Gets the total number of operations.
TUTORIAL - Enum constant in enum class com.university.bookstore.model.VideoMaterial.VideoType
TV_SERIES - Enum constant in enum class com.university.bookstore.model.VideoMaterial.VideoType
type() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `type` record component.

## U

ULTRA_HD - Enum constant in enum class com.university.bookstore.model.Media.MediaQuality
uniqueTypes() - Method in record class com.university.bookstore.api.ModernMaterialStore.ModernInventoryStats
  Returns the value of the `uniqueTypes` record component.
updateMaterial(Material) - Method in class com.university.bookstore.service.MaterialService
  Updates an existing material with business logic validation.
updateMaterial(String, Material) - Method in class com.university.bookstore.controller.MaterialController
  PUT /api/materials/{id} - Update an existing material

## V

validate() - Method in interface com.university.bookstore.builder.ComponentBuilder
  Validates that all required fields are set.
validate() - Method in class com.university.bookstore.builder.EBookBuilder
validate() - Method in interface com.university.bookstore.builder.MaterialBuilder
  Validates that all required fields are set.
validate() - Method in class com.university.bookstore.builder.MaterialBundleBuilder
validateRequiredProperties(String, Map<String, Object>) - Static method in class com.university.bookstore.factory.AdvancedMaterialFactory
  Validates that all required properties are present.
valueOf(String) - Static method in enum class com.university.bookstore.model.Magazine.PublicationFrequency
  Returns the enum constant of this class with the specified name.
valueOf(String) - Static method in enum class com.university.bookstore.model.Material.MaterialType
  Returns the enum constant of this class with the specified name.
valueOf(String) - Static method in enum class com.university.bookstore.model.Media.MediaQuality
  Returns the enum constant of this class with the specified name.
valueOf(String) - Static method in enum class com.university.bookstore.model.VideoMaterial.VideoType
  Returns the enum constant of this class with the specified name.
values() - Static method in enum class com.university.bookstore.model.Magazine.PublicationFrequency
  Returns an array containing the constants of this enum class, in the order they are declared.
values() - Static method in enum class com.university.bookstore.model.Material.MaterialType
  Returns an array containing the constants of this enum class, in the order they are declared.
values() - Static method in enum class com.university.bookstore.model.Media.MediaQuality
  Returns an array containing the constants of this enum class, in the order they are declared.
values() - Static method in enum class com.university.bookstore.model.VideoMaterial.VideoType
  Returns an array containing the constants of this enum class, in the order they are declared.
VIDEO - Enum constant in enum class com.university.bookstore.model.Material.MaterialType
VideoMaterial - Class in com.university.bookstore.model
  Represents video content (movies, documentaries, educational videos).
VideoMaterial(String, String, String, double, int, int, String, double, Media.MediaQuality, VideoMaterial.VideoType, String, List<String>, boolean, String) - Constructor for class com.university.bookstore.model.VideoMaterial
  Creates a new VideoMaterial.
VideoMaterial.VideoType - Enum Class in com.university.bookstore.model
  Types of video content.
visit(AudioBook) - Method in interface com.university.bookstore.visitor.MaterialVisitor
  Visits an AudioBook.
visit(AudioBook) - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Calculates shipping cost for audio books.
visit(EBook) - Method in interface com.university.bookstore.visitor.MaterialVisitor
  Visits an EBook.
visit(EBook) - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Calculates shipping cost for e-books.
visit(Magazine) - Method in interface com.university.bookstore.visitor.MaterialVisitor
  Visits a Magazine.
visit(Magazine) - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Calculates flat rate shipping cost for magazines.
visit(PrintedBook) - Method in interface com.university.bookstore.visitor.MaterialVisitor
  Visits a PrintedBook.
visit(PrintedBook) - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Calculates shipping cost for a printed book based on weight.
visit(VideoMaterial) - Method in interface com.university.bookstore.visitor.MaterialVisitor
  Visits a VideoMaterial.
visit(VideoMaterial) - Method in class com.university.bookstore.visitor.ShippingCostCalculator
  Calculates shipping cost for video materials.
VPHandler - Class in com.university.bookstore.chain
  VP-level discount approval handler.
VPHandler() - Constructor for class com.university.bookstore.chain.VPHandler

## W

warmUp(Collection<String>, Function<String, List<Material>>) - Method in class com.university.bookstore.search.ModernSearchCache
  Warms up the cache with predefined keys.
WEEKLY - Enum constant in enum class com.university.bookstore.model.Magazine.PublicationFrequency
withCreator(String) - Method in class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder
withPriceRange(Double, Double) - Method in class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder
withTitle(String) - Method in class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder
withType(Material.MaterialType) - Method in class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder
withYearRange(Integer, Integer) - Method in class com.university.bookstore.api.ModernMaterialStore.SearchCriteria.Builder

## Y

yearFrom() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `yearFrom` record component.
yearTo() - Method in record class com.university.bookstore.api.ModernMaterialStore.SearchCriteria
  Returns the value of the `yearTo` record component.

A B C D E F G H I J L M N O P Q R S T U V W Y
All Classes and Interfaces|All Packages|Serialized Form