It seems like this same logic would also need to go into NamedFieldsRetriever.
Therefore, maybe use a strategy like:
https://github.com/futures/benchtool/blob/master/src/main/java/org/fcrepo/bench/BenchTool.java#L125

at:
https://github.com/futures/fcrepo-jms-indexer-pluggable/blob/master/fcrepo-jms-indexer-core/src/main/java/org/fcrepo/indexer/IndexerGroup.java#L109