Class AbstractPagedFilterResolver
java.lang.Object
com.bluebell.greenhouse.planter.resolvers.AbstractPagedFilterResolver
- Direct Known Subclasses:
AccountLedgerFilterResolver, ExchangeFilterResolver, JobFilterResolver, MarketPriceFilterResolver, PositionFilterResolver, StrategyFilterResolver, StrategyImplementationFilterResolver, SymbolFilterResolver, TransactionFilterResolver, UserFilterResolver
Base resolver for paged filter endpoints that need standardized sort, enum, and date resolution.
- Version:
- 3.0.5
- Author:
- Stephen Prizio
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final recordCanonical parsed form of a single sort token. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidappendResolvedSortOrders(AbstractPagedFilterResolver.ResolvedSortValue sortValue, List<String> properties, Map<String, org.springframework.data.domain.Sort.Order> resolvedOrders) Appends orders for a parsed sort value.protected final org.springframework.data.domain.SortapplyDirectionToSort(String directionValue, org.springframework.data.domain.Sort defaultSort) Applies a direction-only legacy sort token to an existing sort definition.coalesceSortValues(List<String> sortValues) Reconstructs sort expressions when request binding has splitfield,directionpairs into adjacent values.protected final booleanisDirectionOnly(String value) Returns whether the given token is a direction-only sort value.normalizeSortValues(List<String> sortValues) Normalizes sort tokens and recombines Spring-bound split alias/direction pairs.protected <E extends Enum<E> & GenericEnum<E>>
EresolveOptionalCodeEnum(String value, Class<E> enumClass, String invalidMessage) Resolves an optional code-backedGenericEnum.protected LocalDateresolveOptionalLocalDate(String value, String invalidMessage) Resolves an optionalLocalDateusing the API standard date format.protected LocalDateTimeresolveOptionalLocalDateTime(String value, String invalidMessage) Resolves an optionalLocalDateTimeusing the API standard date format.protected StringresolveOptionalString(String value) Resolves a trimmed optional string, mapping blanks tonull.protected org.springframework.data.domain.SortresolveSort(String sort, String... properties) Resolves a sort direction string to aSortfor the given properties.protected org.springframework.data.domain.SortresolveSort(List<String> sortValues, org.springframework.data.domain.Sort defaultSort, Map<String, List<String>> sortableFieldMap) Resolves a sort expression list using a whitelist of supported sort aliases.Resolves the whitelist-mapped entity properties for a sort alias.protected final AbstractPagedFilterResolver.ResolvedSortValueresolveSortValue(String sortValue) Resolves a single sort token into its alias and direction.sortMapping(String alias, String... properties) Builds a stable sortable alias mapping.
-
Constructor Details
-
AbstractPagedFilterResolver
public AbstractPagedFilterResolver()
-
-
Method Details
-
resolveSort
-
resolveOptionalCodeEnum
protected <E extends Enum<E> & GenericEnum<E>> E resolveOptionalCodeEnum(String value, Class<E> enumClass, String invalidMessage) Resolves an optional code-backedGenericEnum.- Type Parameters:
E- enum type- Parameters:
value- incoming code valueenumClass- enum classinvalidMessage- message used when the code is invalid- Returns:
- resolved enum or
null
-
resolveOptionalLocalDateTime
Resolves an optionalLocalDateTimeusing the API standard date format.- Parameters:
value- incoming date/time valueinvalidMessage- message used when the value is invalid- Returns:
- parsed
LocalDateTimeornull
-
resolveOptionalLocalDate
-
resolveSort
protected org.springframework.data.domain.Sort resolveSort(List<String> sortValues, org.springframework.data.domain.Sort defaultSort, Map<String, List<String>> sortableFieldMap) Resolves a sort expression list using a whitelist of supported sort aliases.- Parameters:
sortValues- raw sort expressionsdefaultSort- fallback sortsortableFieldMap- whitelist mapping of aliases to entity properties- Returns:
Sort
-
sortMapping
-
resolveOptionalString
-
normalizeSortValues
-
coalesceSortValues
-
resolveSortValue
Resolves a single sort token into its alias and direction.- Parameters:
sortValue- raw sort token- Returns:
- resolved sort value
-
resolveSortableProperties
-
appendResolvedSortOrders
protected final void appendResolvedSortOrders(AbstractPagedFilterResolver.ResolvedSortValue sortValue, List<String> properties, Map<String, org.springframework.data.domain.Sort.Order> resolvedOrders) Appends orders for a parsed sort value.- Parameters:
sortValue- parsed sort valueproperties- entity properties to sort byresolvedOrders- output orders
-
applyDirectionToSort
protected final org.springframework.data.domain.Sort applyDirectionToSort(String directionValue, org.springframework.data.domain.Sort defaultSort) Applies a direction-only legacy sort token to an existing sort definition.- Parameters:
directionValue- legacy direction tokendefaultSort- fallback sort- Returns:
- directed
Sort
-
isDirectionOnly
Returns whether the given token is a direction-only sort value.- Parameters:
value- token- Returns:
- true when the token is
ascordesc
-