public class MetadataBasedGroupingProvider extends Object implements PropertyGroupingProvider
String metadata property.
Can optionally also sort, based on another Integer metadata property.
Grouping metadata must be of type ACCEPTED_GROUPING_METADATA_TYPE. When the group name is not specified, a single-element group with the property is created, with the name of that property as the name of the group.
Sorting metadata must be of type that belongs to ACCEPTED_SORTING_METADATA_TYPES. Sorting is done by value of the metadata first, then by name of the property.| Modifier and Type | Field and Description |
|---|---|
static Class<String> |
ACCEPTED_GROUPING_METADATA_TYPE |
static Set<Class<?>> |
ACCEPTED_SORTING_METADATA_TYPES |
| Constructor and Description |
|---|
MetadataBasedGroupingProvider() |
| Modifier and Type | Method and Description |
|---|---|
String |
getGroupingMetadataName()
Returns name of the metadata property used to obtain group names.
|
String |
getSortingMetadataName()
Returns the current name of the metadata property used for sorting.
|
<T> Map<String,List<Property<T,?>>> |
groupDefinitions(List<Property<T,?>> definitions)
Groups given definitions.
|
void |
setGroupingMetadataName(String groupingMetadataName)
Sets the name of the metadata property used to obtain group names.
|
void |
setSortingMetadataName(String sortingMetadataName)
Sets the name of the metadata property used for sorting the properties.
|
MetadataBasedGroupingProvider |
withGroupingMetadataName(String metadataName)
Chains
setGroupingMetadataName(String) and returns itself. |
MetadataBasedGroupingProvider |
withSortingMetadataName(String metadataName)
Chains
setSortingMetadataName(String) and returns itself. |
public <T> Map<String,List<Property<T,?>>> groupDefinitions(List<Property<T,?>> definitions)
PropertyGroupingProvidergroupDefinitions in interface PropertyGroupingProviderT - Type parameter for Propertys.definitions - Definitions to group.null (but possibly empty) map. The map will not contain new Propertys, those from the parameter will be reused.public String getGroupingMetadataName()
null when no metadata property was specified.public void setGroupingMetadataName(String groupingMetadataName)
null do disable grouping. In such case each Property will be in its own, single element group, regardless of the metadata.groupingMetadataName - Name of the metadata. Its type must be ACCEPTED_GROUPING_METADATA_TYPE.public final MetadataBasedGroupingProvider withGroupingMetadataName(String metadataName)
setGroupingMetadataName(String) and returns itself.metadataName - Name of the metadata.setGroupingMetadataName(String)public String getSortingMetadataName()
null.public void setSortingMetadataName(String sortingMetadataName)
null to disable sorting.sortingMetadataName - Name of the metadata. Its type must belong to ACCEPTED_SORTING_METADATA_TYPES.public final MetadataBasedGroupingProvider withSortingMetadataName(String metadataName)
setSortingMetadataName(String) and returns itself.metadataName - Metadata name.setSortingMetadataName(String)Copyright © 2024 Miki. All rights reserved.