/** * Collects all sort fields declared on the properties of the given type or the properties of all the types it * embeds into the given list. */ private void collectSortableFields(SortConfigurations.Builder sortConfigurations, Iterable<IndexManager> indexManagers, TypeMetadata typeMetadata, Optional<CustomTypeMetadata> customTypeMetadataOptional) { for ( IndexManager indexManager : indexManagers ) { sortConfigurations.setIndex( indexManager.getIndexName() ); sortConfigurations.setEntityType( typeMetadata.getType() ); sortConfigurations.addSortableFields( typeMetadata.getClassBridgeSortableFieldMetadata() ); sortConfigurations.addSortableFields( typeMetadata.getIdPropertyMetadata().getSortableFieldMetadata() ); for ( PropertyMetadata property : typeMetadata.getAllPropertyMetadata() ) { sortConfigurations.addSortableFields( property.getSortableFieldMetadata() ); } for ( EmbeddedTypeMetadata embeddedType : typeMetadata.getEmbeddedTypeMetadata() ) { collectSortableFields( sortConfigurations, embeddedType ); } if ( customTypeMetadataOptional.isPresent() ) { CustomTypeMetadata customTypeMetadata = customTypeMetadataOptional.get(); for ( String fieldName : customTypeMetadata.getSortableFields() ) { sortConfigurations.addSortableField( new SortableFieldMetadata.Builder( fieldName ).build() ); } } } }
/** * Collects all sort fields declared on the properties of the given type or the properties of all the types it * embeds into the given list. */ private void collectSortableFields(SortConfigurations.Builder sortConfigurations, Iterable<IndexManager> indexManagers, TypeMetadata typeMetadata, Optional<CustomTypeMetadata> customTypeMetadataOptional) { for ( IndexManager indexManager : indexManagers ) { sortConfigurations.setIndex( indexManager.getIndexName() ); sortConfigurations.setEntityType( typeMetadata.getType() ); sortConfigurations.addSortableFields( typeMetadata.getClassBridgeSortableFieldMetadata() ); sortConfigurations.addSortableFields( typeMetadata.getIdPropertyMetadata().getSortableFieldMetadata() ); for ( PropertyMetadata property : typeMetadata.getAllPropertyMetadata() ) { sortConfigurations.addSortableFields( property.getSortableFieldMetadata() ); } for ( EmbeddedTypeMetadata embeddedType : typeMetadata.getEmbeddedTypeMetadata() ) { collectSortableFields( sortConfigurations, embeddedType ); } if ( customTypeMetadataOptional.isPresent() ) { CustomTypeMetadata customTypeMetadata = customTypeMetadataOptional.get(); for ( String fieldName : customTypeMetadata.getSortableFields() ) { sortConfigurations.addSortableField( new SortableFieldMetadata.Builder( fieldName ).build() ); } } } }