Создание древовидной структуры из нескольких вызовов API в JAVA ⇐ JAVA
Создание древовидной структуры из нескольких вызовов API в JAVA
Введение: Я работаю над проектом Java, где мне нужно создать древовидную структуру на основе данных, полученных в результате нескольких вызовов API. У меня есть два класса, Dept и Domain, которые структурированы следующим образом:
отдел общедоступного класса { частный список доменов List = null; // ... } Домен публичного класса { частная строка BusinessObjectId; частная строка BusinessObjectConfId; частный список ParentIds; частный список ParentConfIds; частный список BusinessObjectSubLevel; // ... } Вызовы API: У меня есть TreeMap, содержащий список параметров для вызовов API. Первый вызов API получает родительский отдел и список доменов. Последующие вызовы API следуют той же схеме для получения вложенных данных.
Построение древовидной структуры: Моя цель — построить такую древовидную структуру: взять список доменов из второго вызова API и установить его в атрибут BusinessObjectSubLevel первого отдела. Мне нужно сделать это для каждого уровня данных. Кроме того, мне необходимо фильтровать домены по атрибуту BusinessObjectId.
Фрагменты кода:
/... Dept mainDept = apicall(params).getdata(); // Сохраняем первоначальный инвентарь ProcessLevels (mainDept, itemsIds, params); вернуть новый ApisResponse(mainDept); } Private voidprocessLevels(Dept currentDept, TreeMap itemsIds, Params params) выдает InterruptedException { for (Map.Entry запись: itemsIds.entrySet()) { Строковое значение = вход.getValue(); Домен businessObject = getBusinessObjectByValue(currentDept, value); если (бизнесОбъект!= ноль) { setBusinessObjectInfo (параметры, businessObject); // Обновляем подуровень в текущем отделе Dept subLevelDept = updateBusinessObjectSubLevelAndGetNextDept (businessObject, params); // Рекурсивно обрабатываем подуровни ProcessLevels (subLevelDept, itemsIds, params); } еще { // Обрабатываем случай, когда домен не найден для данного значения } } } // извлекаем домен на основе заданного значения частный домен getDomainByValue (отдел отдела, строковое значение) { вернуть отдел.getDomains().stream() .filter(item -> domain.getBusinessObjectId().equalsIgnoreCase(значение)) .findFirst() .orElse(ноль); } // устанавливаем информацию о домене в параметрах Private void setBusinessObjectInfo (параметры Params, домен домена) { params.setBusinessObjectConfId(domain.getBusinessObjectConfId()); params.setBusinessObjectId(domain.getBusinessObjectId()); params.setParentIds(domain.getParentIds()); params.setParentConfIds(domain.getParentConfIds()); } // обновляем BusinessObjectSubLevel и получаем следующий Dept частный отдел updateBusinessObjectSubLevelAndGetNextDept (домен домена, параметры Params) выдает InterruptedException { Dept ob = apicall(params).getData(); домен.setBusinessObjectSubLevel(ob.getDomains()); вернуть об; } Я столкнулся с трудностями при обработке нескольких вызовов API и создании желаемой древовидной структуры, этот код дал мне только первый и второй уровень.
Введение: Я работаю над проектом Java, где мне нужно создать древовидную структуру на основе данных, полученных в результате нескольких вызовов API. У меня есть два класса, Dept и Domain, которые структурированы следующим образом:
отдел общедоступного класса { частный список доменов List = null; // ... } Домен публичного класса { частная строка BusinessObjectId; частная строка BusinessObjectConfId; частный список ParentIds; частный список ParentConfIds; частный список BusinessObjectSubLevel; // ... } Вызовы API: У меня есть TreeMap, содержащий список параметров для вызовов API. Первый вызов API получает родительский отдел и список доменов. Последующие вызовы API следуют той же схеме для получения вложенных данных.
Построение древовидной структуры: Моя цель — построить такую древовидную структуру: взять список доменов из второго вызова API и установить его в атрибут BusinessObjectSubLevel первого отдела. Мне нужно сделать это для каждого уровня данных. Кроме того, мне необходимо фильтровать домены по атрибуту BusinessObjectId.
Фрагменты кода:
/... Dept mainDept = apicall(params).getdata(); // Сохраняем первоначальный инвентарь ProcessLevels (mainDept, itemsIds, params); вернуть новый ApisResponse(mainDept); } Private voidprocessLevels(Dept currentDept, TreeMap itemsIds, Params params) выдает InterruptedException { for (Map.Entry запись: itemsIds.entrySet()) { Строковое значение = вход.getValue(); Домен businessObject = getBusinessObjectByValue(currentDept, value); если (бизнесОбъект!= ноль) { setBusinessObjectInfo (параметры, businessObject); // Обновляем подуровень в текущем отделе Dept subLevelDept = updateBusinessObjectSubLevelAndGetNextDept (businessObject, params); // Рекурсивно обрабатываем подуровни ProcessLevels (subLevelDept, itemsIds, params); } еще { // Обрабатываем случай, когда домен не найден для данного значения } } } // извлекаем домен на основе заданного значения частный домен getDomainByValue (отдел отдела, строковое значение) { вернуть отдел.getDomains().stream() .filter(item -> domain.getBusinessObjectId().equalsIgnoreCase(значение)) .findFirst() .orElse(ноль); } // устанавливаем информацию о домене в параметрах Private void setBusinessObjectInfo (параметры Params, домен домена) { params.setBusinessObjectConfId(domain.getBusinessObjectConfId()); params.setBusinessObjectId(domain.getBusinessObjectId()); params.setParentIds(domain.getParentIds()); params.setParentConfIds(domain.getParentConfIds()); } // обновляем BusinessObjectSubLevel и получаем следующий Dept частный отдел updateBusinessObjectSubLevelAndGetNextDept (домен домена, параметры Params) выдает InterruptedException { Dept ob = apicall(params).getData(); домен.setBusinessObjectSubLevel(ob.getDomains()); вернуть об; } Я столкнулся с трудностями при обработке нескольких вызовов API и создании желаемой древовидной структуры, этот код дал мне только первый и второй уровень.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение