@NotNull
@Override
public P4CommandRunner.QueryAnswer<ListFilesDetailsResult> listFilesDetails(ServerConfig config,
ListFilesDetailsQuery query) {
final List<IFileSpec> fileSpecs = FileSpecBuildUtil.escapedForFilePathsAnnotated(
query.getFiles(),
query.getRevState() == ListFilesDetailsQuery.RevState.HEAD ? "#head" : "#have",
true);
return new QueryAnswerImpl<>(connectionManager.withConnection(config, (server) ->
new ListFilesDetailsResult(config,
cmd.getFilesDetails(server, query.getClientServerRef().getClientName(), fileSpecs).stream()
.map((e) ->
query.getRevState() == ListFilesDetailsQuery.RevState.HEAD
? P4FileRevisionImpl.getHead(query.getClientServerRef(), e)
: P4FileRevisionImpl.getHave(query.getClientServerRef(), e)
)
.collect(Collectors.toList()))));
}