public static Path getIndexPath(final IndexShard indexShard,
                                    final PathCreator pathCreator) {
        try {
            Path path = pathCreator.toAppPath(indexShard.getVolume().getPath());

            if (!Files.isDirectory(path)) {
                throw new IOException("Volume path not found: " + indexShard.getVolume().getPath());
            }

            path = path.resolve("index");
            path = path.resolve(indexShard.getIndexUuid());
            path = path.resolve(indexShard.getPartition());
            path = path.resolve(String.valueOf(indexShard.getId()));

            return path;
        } catch (final IOException e) {
            throw new UncheckedIOException(e);
        }
    }
Not very OO but added here for GWT reasons.
stroom-index/stroom-index-impl/src/main/java/stroom/index/impl/IndexShardUtil.java