Преобразование циклов с помощью stream API
Подскажите, как элегантно и красиво переделать все эти циклы используя stream API. Теорию читал, но на практике не получается. Важное условие, сохранить выход из цикла, после нахождения актуального объекта в основном и вложенном цикле. Пытаясь сделать даже вместе первого цикла стрим, выходит ошибка, которую надо обработать из-за попытки фильтрации объектов по getLinkedObjs. Ну а дальше, как остальные циклы вложенные друг в друга преобразовать, вообще не пойму.
try {
SXObjListParams paramsService = new SXObjListParams(CorrServicesBean.CLASS_NAME);
paramsService.setGetLinkedObjects(false);
paramsService.addCondition(CorrServicesBean.Attrs.FROMID_EGSERVICE_TARGETID, targetId);
List<SXObj> sxObjList = paramsService.getListOfSXObj();
for (SXObj sxObj : sxObjList) {
Collection<SXObj> sxObjLinks = null;
if(sxObj.getLinkedObjs("toId") != null){
sxObjLinks.addAll(sxObj.getLinkedObjs("toId"));
outterLoop: for(SXObj sxObjLink : sxObjLinks ) {
List<SXId> sxIds = new ArrayList<>();
sxIds.add(sxObjLink.getId());
for (SXId sxId : sxIds) {
SXObj sxObjActual = sxId.getObj(ProviderBean.Attrs.IS_ACTUAL);
if (sxObjActual.getBoolAttr("isActual")) {
enable = true;
break outterLoop;
}
}
}
}else {
log.error("Список услуг отсутствует");
}
}
