Я пытаюсь построить потоковый конвейер, который не очень прост, и это меня озадачивает.
Идея в том, что у меня есть класс, содержащий набор сущностей, которые я хочу пройти. Application
класс определяет поле Set<Document> documents
. Внутри этих документов у меня есть поле DocumentFile documentFile
. Я фильтрую поток по имени этого файла документа, но в результате мне нужен идентификатор Document
сущности.
Итак, метод выглядит так:
private long retrieveSmth(String docName, long applicationId) {
final Application application = this.applicationDao.get(applicationId);
final long docId = application.getDocuments()
.stream()
.map(Document::getDocumentFile)
.filter(doc -> doc.getDocumentFileName().equals(docName))
...
}
В этот момент я зацикливаюсь на вопросе, как вернуть элемент управления на уровень Document
и получить идентификатор документа, файл документа которого удовлетворяет условию. Есть ли способ сделать это с помощью Stream API?