# All Classes and Interfaces

Class
Description
AdvancedMaterialFactory
Enhanced factory for creating Material instances with advanced validation and type-safe property extraction.
AnalyticsObserver
Observer that collects analytics data from material events.
AnalyticsObserver.AnalyticsData
Comprehensive analytics data container.
AudioBook
Represents an audio book that implements both Material and Media interfaces.
AuditLogObserver
Observer that maintains an audit log of all material events.
AuditLogObserver.AuditLogEntry
Represents a single audit log entry.
AuditLogObserver.AuditLogStats
Statistics for the audit log.
Book
Represents an immutable book in the bookstore inventory.
BookArrayUtils
Utility class for array-based operations on Book objects.
BookstoreAPI
Defines the contract for bookstore operations.
BookstoreApplication
Spring Boot application entry point for the Bookstore Management System.
BookstoreArrayList
ArrayList-based implementation of the BookstoreAPI.
BundleService
Service for managing material bundles using the Composite pattern.
BundleService.BundleStats
Statistics class for bundle analysis.
CachedSearchService
Service that integrates Trie-based prefix search with LRU caching for optimal performance.
ComponentBuilder<T>
Builder interface for creating MaterialComponent instances.
ConcurrentMaterialStore
Thread-safe implementation of MaterialStore using synchronization primitives.
DigitalAnnotationDecorator
Decorator that adds digital annotation functionality to materials.
DirectorHandler
Director-level discount approval handler.
DiscountApprovalService
Service for managing discount approval using the Chain of Responsibility pattern.
DiscountApprovalService.ApprovalStats
Statistics class for approval analysis.
DiscountHandler
Abstract base class for discount approval handlers in the Chain of Responsibility pattern.
DiscountRequest
Request object for discount approval in the Chain of Responsibility pattern.
EBook
Represents an electronic book (e-book) in the bookstore system.
EBookBuilder
Builder for creating EBook instances with a fluent interface.
ExpeditedDeliveryDecorator
Decorator that adds expedited delivery functionality to materials.
GiftWrappingDecorator
Decorator that adds gift wrapping functionality to materials.
InventoryObserver
Observer that tracks inventory changes for materials.
JsonMaterialRepository
JSON-based implementation of MaterialRepository (Adapter in hexagonal architecture).
LoggerFactory
Factory for creating SLF4J loggers with consistent configuration.
Magazine
Represents a magazine in the store inventory.
Magazine.PublicationFrequency
Frequency of magazine publication.
ManagerHandler
Manager-level discount approval handler.
Material
Abstract base class representing any material in the store inventory.
Material.MaterialType
Enumeration of material types for polymorphic behavior.
MaterialAddedEvent
Event that occurs when a material is added to the system.
MaterialBuilder<T>
Builder interface for creating Material instances.
MaterialBundle
Composite component in the Composite pattern.
MaterialBundleBuilder
Builder for creating MaterialBundle instances with a fluent interface.
MaterialComponent
Component interface for the Composite pattern.
MaterialController
REST Controller for Material management operations.
MaterialDecorator
Abstract base class for material decorators in the Decorator pattern.
MaterialDirector
Director class that orchestrates the construction of complex Material objects using various builders.
MaterialEnhancementService
Service for managing material enhancements using the Decorator pattern.
MaterialEvent
Base interface for material-related domain events in the Observer pattern.
MaterialEventPublisher
Concrete implementation of MaterialSubject that publishes material events to observers.
MaterialFactory
Factory class for creating Material instances.
MaterialIterator
Iterator interface for traversing collections of materials.
MaterialIteratorFactory
Factory for creating different types of material iterators.
MaterialLeaf
Leaf component in the Composite pattern.
MaterialObserver
Observer interface for material-related events in the Observer pattern.
MaterialRepository
Port interface for material persistence operations in hexagonal architecture.
MaterialService
Domain service that orchestrates business logic for material management.
MaterialService.InvalidMaterialException
Exception thrown when a material is invalid according to business rules.
MaterialService.MaterialNotFoundException
Exception thrown when a requested material is not found.
MaterialStore
Interface defining operations for a polymorphic material store that demonstrates interface segregation and dependency inversion principles.
MaterialStore.InventoryStats
Statistics class for inventory analysis.
MaterialStoreImpl
Implementation of MaterialStore using ArrayList with polymorphic handling.
MaterialSubject
Subject interface for material events in the Observer pattern.
MaterialsWrapper
Wrapper class to ensure proper JSON serialization of Material polymorphic types.
MaterialTrie
Trie (Prefix Tree) data structure for efficient prefix-based material searching.
MaterialTypeIterator
Iterator that filters materials by type.
MaterialVisitor
Visitor interface for implementing the Visitor pattern.
Media
Interface for materials with multimedia content.
Media.MediaQuality
Quality levels for media content.
ModernConcurrentMaterialStore
Modern thread-safe implementation of MaterialStore using best practices.
ModernJsonMaterialRepository
Modern JSON-based implementation of MaterialRepository using best practices.
ModernMaterialStore
Modern interface for polymorphic material store with async operations.
ModernMaterialStore.BatchOperationResult
Batch operation result record.
ModernMaterialStore.ModernInventoryStats
Modern InventoryStats using Java record for immutability.
ModernMaterialStore.SearchCriteria
Search criteria record for complex searches.
ModernMaterialStore.SearchCriteria.Builder
Builder for SearchCriteria.
ModernSearchCache
Modern high-performance cache implementation with advanced features.
ModernSearchCache.CacheStats
Cache statistics record.
PolymorphismDemo
Demonstration class showing polymorphism and OOP best practices.
PriceChangedEvent
Event that occurs when a material's price changes.
PriceRangeIterator
Iterator that filters materials by price range.
PriceSortedIterator
Iterator that returns materials sorted by price.
PrintedBook
Represents a physical printed book in the bookstore inventory.
RepositoryException
Exception thrown when repository operations fail.
SearchResultCache
LRU (Least Recently Used) cache for search results.
SearchResultCache.CacheStats
Statistics class for cache performance monitoring.
ShippingCostCalculator
Concrete visitor implementation for calculating shipping costs.
VideoMaterial
Represents video content (movies, documentaries, educational videos).
VideoMaterial.VideoType
Types of video content.
VPHandler
VP-level discount approval handler.