protected Map<String, ServiceLink> populateNewServiceLinks(ApiRequest request) { Map<String, ServiceLink> newServiceLinks = new HashMap<>(); List<? extends ServiceLink> serviceLinks = DataAccessor.fromMap(request.getRequestObject()) .withKey(ServiceConstants.FIELD_SERVICE_LINKS) .withDefault(Collections.EMPTY_LIST) .asList(jsonMapper, ServiceLink.class); if (serviceLinks != null) { for (ServiceLink serviceLink : serviceLinks) { newServiceLinks.put(serviceLink.getUuid(), serviceLink); } } return newServiceLinks; }
private void removeOldServiceMaps(Service service, Map<String, ServiceLink> newServiceLinks) { List<? extends ServiceConsumeMap> existingMaps = consumeMapDao.findConsumedMapsToRemove(service.getId()); List<ServiceLink> linksToRemove = new ArrayList<>(); for (ServiceConsumeMap existingMap : existingMaps) { ServiceLink existingLink = new ServiceLink(existingMap.getConsumedServiceId(), existingMap.getName()); if (!newServiceLinks.containsKey(existingLink.getUuid())) { linksToRemove.add(existingLink); } } for (ServiceLink linkToRemove : linksToRemove) { sdService.removeServiceLink(service, linkToRemove); } }