Создание древовидной структуры из нескольких вызовов API в JAVAJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Создание древовидной структуры из нескольких вызовов API в JAVA

Сообщение Anonymous »


Введение: Я работаю над проектом 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 и создании желаемой древовидной структуры, этот код дал мне только первый и второй уровень.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»