@Override public List<Organisation> getOrganiationsByRangeIp(String ipFrom, String ipTo) { int pageNo = 0; List<Organisation> result = new ArrayList<Organisation>(); Page<Organisation> organisationsPage = null; OrganisationIpRangeQuery query = new OrganisationIpRangeQuery(); query.setIpFrom(ipFrom); query.setIpTo(ipTo); query.setPageSize(Integer.parseInt(DEFAULT_PAGE_SIZE)); do { query.setPageNo(pageNo); organisationsPage = licensingService.findOrgansationByRange(query); result.addAll(organisationsPage.getResult()); pageNo++; } while (pageNo < organisationsPage.getTotalPages()); return result; }
private void buildRange(OrganisationIpLikeQuery likeQuery, OrganisationIpRangeQuery rangeQuery) { IpVersion version = getIpVersion(likeQuery.getIpLike()); Character splitCharacter = version == IpVersion.IPV4 ? '.' : ':'; int radix = version == IpVersion.IPV4 ? 10 : 16; Character paddingCharacter = Integer.toString(radix - 1, radix).charAt(0); int maxPartValue = 255; int partLength = version == IpVersion.IPV4 ? 3 : 2; int partsCount = version == IpVersion.IPV4 ? 4 : 8; String rangeTo = processIp(likeQuery.getIpLike(), splitCharacter, radix, paddingCharacter, maxPartValue, partLength, partsCount); String rangeFrom = processIp(likeQuery.getIpLike(), splitCharacter, radix, '0', maxPartValue, partLength, partsCount); rangeQuery.setIpFrom(rangeFrom); rangeQuery.setIpTo(rangeTo); }
@RequestMapping(value = "/licensing/organisation/list", method = RequestMethod.GET, params = "filterType=ipRange") @Secured(ConsoleSecurityRoles.ROLE_LICENSE_VIEW) public ModelAndView findIpRange(@ModelAttribute("filter") @Valid OrganisationFilter filter, Errors errors, ModelMap model) { if(StringUtils.isEmpty(filter.getIpFrom()) && StringUtils.isEmpty(filter.getIpTo()) || errors.hasErrors()){ return listOrganisations(filter, model); } OrganisationIpRangeQuery query = new OrganisationIpRangeQuery(); updateQuery(filter, query); query.setIpFrom(filter.getIpFrom()); query.setIpTo(filter.getIpTo()); ModelAndView results = new ModelAndView("container.platform.licensing.organisation.list"); Page<Organisation> organisationPage = licensingService.findOrgansationByRange(query); String queryString = messageSource.getMessage(IP_RANGE_MESSAGE, new Object[]{filter.getIpFrom(), filter.getIpTo()}, LocaleContextHolder.getLocale()); updateResults(results, organisationPage, queryString, filter.getOrder(), filter.getField()); return results; }