@groovy.transform.CompileStatic class BidsEntityUtils extends java.lang.Object
Utility methods for matching and grouping nfneuro.plugin.model.BidsFile objects by their nfneuro.plugin.model.BidsEntity values.
The key method is groupByEntities, which is called by nfneuro.plugin.grouping.BaseSetHandler to partition files into per-group buckets before set-type–specific packing.
| Type | Name and description |
|---|---|
static java.lang.String |
ENTITY_ALIASES_RESOURCE |
static java.lang.String |
NA_VALUE |
| Constructor and description |
|---|
BidsEntityUtils() |
| Type Params | Return Type | Name and description |
|---|---|---|
|
static java.util.Map<java.lang.String, java.lang.String> |
buildAliasToEntityMap(java.lang.String aliasesJsonPath) |
|
static java.lang.String |
comparisonKey(nfneuro.plugin.model.BidsFile file, java.util.List<java.lang.String> entityNames)Create entity comparison key |
|
static final boolean |
entitiesMatch(java.util.List<nfneuro.plugin.model.BidsEntity> entities, java.util.List<nfneuro.plugin.model.BidsEntity> requiredEntities, java.util.Comparator comparator)Check if entities match the required pattern |
|
static java.util.List<java.lang.String> |
extractEntityValues(nfneuro.plugin.model.BidsFile file, java.util.List<java.lang.String> entityNames)Extract entity values as ordered list |
|
static java.util.List<nfneuro.plugin.model.BidsFile> |
filterByEntities(java.util.List<nfneuro.plugin.model.BidsFile> files, java.util.List<nfneuro.plugin.model.BidsEntity> entityFilter)Filter files by entity values |
|
static java.util.List<java.lang.String> |
getUniqueValues(java.util.List<nfneuro.plugin.model.BidsFile> files, java.lang.String entityName)Get all unique values for an entity across files |
|
static java.util.Map<java.lang.String, java.util.List<nfneuro.plugin.model.BidsFile>> |
groupByEntities(java.util.List<nfneuro.plugin.model.BidsFile> files, java.util.List<java.lang.String> entityNames)Group files by multiple entities |
|
static java.util.Map<java.lang.String, java.util.List<nfneuro.plugin.model.BidsFile>> |
groupByEntity(java.util.List<nfneuro.plugin.model.BidsFile> files, java.lang.String entityName)Group files by entity value |
|
static java.lang.String |
groupingKey(nfneuro.plugin.model.BidsFile file, java.util.List<java.lang.String> entities)Build group key from file entities |
|
static java.util.Map<java.lang.String, nfneuro.plugin.model.BidsEntity> |
groupingKeyToMap(java.util.List groupingKeyList, java.util.List<java.lang.String> entityNames)Build entity map from grouping key and entity names |
|
static boolean |
hasConsistentEntities(java.util.List<nfneuro.plugin.model.BidsFile> files, java.util.List<java.lang.String> entityNames)Check if files have consistent entity values |
|
static boolean |
hasRequiredEntities(nfneuro.plugin.model.BidsFile file, java.util.List<java.lang.String> requiredEntities)Validate required entities are present |
|
static java.lang.String |
normalizeEntityKey(java.lang.String key, java.util.Map<java.lang.String, java.lang.String> aliasToEntity) |
|
static java.util.Map<java.lang.String, java.lang.String> |
normalizeEntityMap(java.util.Map values, java.util.Map<java.lang.String, java.lang.String> aliasToEntity) |
|
static java.lang.String |
normalizeEntityValue(java.lang.String entityKey, java.lang.String value, java.util.Map<java.lang.String, java.lang.String> aliasToEntity) |
|
static java.util.List<nfneuro.plugin.model.BidsFile> |
sortByEntity(java.util.List<nfneuro.plugin.model.BidsFile> files, java.lang.String entityName)Sort files by entity value |
|
static java.lang.String |
toEntityString(nfneuro.plugin.model.BidsFile file, java.util.List<java.lang.String> entityNames)Create entity string representation |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait() |
Create entity comparison key Builds a key for entity-based comparison/deduplication
file - BIDS fileentityNames - Entities to include in keyCheck if entities match the required pattern
entities - Actual entitiesrequiredEntities - Required entitiesExtract entity values as ordered list
file - BIDS fileentityNames - List of entity names in desired orderFilter files by entity values Returns files that match all specified entity criteria
files - List of BIDS filesentityFilter - Map of entity name to required value (null/"NA" = wildcard)Get all unique values for an entity across files
files - List of BIDS filesentityName - Entity nameGroup files by multiple entities Creates hierarchical grouping by multiple entity names
files - List of BIDS filesentityNames - List of entity names to group by (in order)Group files by entity value
files - List of BIDS filesentityName - Entity to group by (e.g., "acq", "dir")Build group key from file entities Normalizes entity names from long to short format before lookup. Config uses long names (subject, session) but files store short names (sub, ses).
file - BIDS fileentities - Entities to include in key (may be long or short names)Build entity map from grouping key and entity names
groupingKeyList - Tuple key from channelentityNames - List of entity namesCheck if files have consistent entity values Validates that all files in a group have the same value for given entities
files - List of BIDS filesentityNames - Entity names to checkValidate required entities are present
file - BIDS filerequiredEntities - List of entity names that must be presentSort files by entity value Sorts files based on entity values (numeric if possible, lexicographic otherwise)
files - List of BIDS filesentityName - Entity to sort byCreate entity string representation Builds a readable string like "sub-01_ses-01_run-1"
file - BIDS fileentityNames - Entities to includeGroovy Documentation