Преобразование циклов с помощью 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("Список услуг отсутствует");
    }
   }

Ответы (0 шт):