@NonNullApi

# Package org.springframework.data.domain

Central domain abstractions especially to be used in combination with the `Repository` abstraction.

See: Description

Interface Summary
Auditable<U,ID,T extends TemporalAccessor>: Interface for auditable entities.
AuditorAware<T>: Interface for components that are aware of the application's current auditor.
Example<T>: Support for query by example (QBE).
ExampleMatcher: Specification for property path matching to use in query by example (QBE).
ExampleMatcher.MatcherConfigurer<T>: Callback to configure a matcher.
ExampleMatcher.PropertyValueTransformer: Allows to transform the property value before it is used in the query.
Page<T>: A page is a sublist of a list of objects.
Pageable: Abstract interface for pagination information.
Persistable<ID>: Simple interface for entities.
ReactiveAuditorAware<T>: Interface for components that are aware of the application's current auditor.
Slice<T>: A slice of data that indicates whether there's a next or previous slice available.

Class Summary
AbstractAggregateRoot<A extends AbstractAggregateRoot<A>>: Convenience base class for aggregate roots that exposes a `AbstractAggregateRoot.registerEvent(Object)` to capture domain events and expose them via `AbstractAggregateRoot.domainEvents()`.
AbstractPageRequest: Abstract Java Bean implementation of `Pageable`.
ExampleMatcher.GenericPropertyMatcher: A generic property matcher that specifies `string matching` and case sensitivity.
ExampleMatcher.GenericPropertyMatchers: Predefined property matchers to create a `ExampleMatcher.GenericPropertyMatcher`.
ExampleMatcher.PropertySpecifier: Define specific property handling for a Dot-Path.
ExampleMatcher.PropertySpecifiers: Define specific property handling for Dot-Paths.
PageImpl<T>: Basic `Page` implementation.
PageRequest: Basic Java Bean implementation of `Pageable`.
Range<T extends Comparable<T>>: Simple value object to work with ranges and boundaries.
Range.Bound<T extends Comparable<T>>: Value object representing a boundary.
Range.RangeBuilder<T extends Comparable<T>>: Builder for `Range` allowing to specify the upper boundary.
SliceImpl<T>: Default implementation of `Slice`.
Sort: Sort option for queries.
Sort.Order: PropertyPath implements the pairing of an `Sort.Direction` and a property.
Sort.TypedSort<T>: Extension of Sort to use method handles to define properties to sort by.

Enum Summary
ExampleMatcher.MatchMode: The match modes to expose so that clients can find about how to concatenate the predicates.
ExampleMatcher.NoOpPropertyValueTransformer
ExampleMatcher.NullHandler: Null handling for creating criterion out of an `Example`.
ExampleMatcher.StringMatcher: Match modes for treatment of `String` values.
Sort.Direction: Enumeration for sort directions.
Sort.NullHandling: Enumeration for null handling hints that can be used in `Sort.Order` expressions.

Annotation Types Summary
AfterDomainEventPublication: Annotation to be used on a method of a Spring Data managed aggregate to get invoked after the events of an aggregate have been published.
DomainEvents: `DomainEvents` can be used on methods of aggregate roots managed by Spring Data repositories to publish the events returned by that method as Spring application events.

## Package org.springframework.data.domain Description

Central domain abstractions especially to be used in combination with the `Repository` abstraction.

See Also:
  `Repository`