package org.swisspush.reststorage; public class UrlParser { public static RestStorageHandler.OffsetLimit offsetLimit(String offsetFromUrl, String limitFromUrl) { RestStorageHandler.OffsetLimit offsetValues = new RestStorageHandler.OffsetLimit(0, -1); if ((offsetFromUrl == null) && (limitFromUrl == null)) { return offsetValues; } int limit = -1; int offset = 0; if(offsetFromUrl != null) { try { offset = Integer.valueOf(offsetFromUrl); offset = offset < 0 ? 0 : offset; } catch (Exception e) { // do nothing here } } if(limitFromUrl != null) { try { limit = Integer.valueOf(limitFromUrl); limit = limit < -1 ? -1 : limit; } catch (Exception e) { // do nothing here } } offsetValues.offset = offset; offsetValues.limit = limit; return offsetValues; } static String path(String uri) { int i = uri.indexOf("://"); if (i == -1) { i = 0; } else { i = uri.indexOf('/', i + 3); if (i == -1) { // contains no / return "/"; } } int queryStart = uri.indexOf('?', i); if (queryStart == -1) { queryStart = uri.length(); } return uri.substring(i, queryStart); } static String query(String uri) { int i = uri.indexOf('?'); if (i == -1) { return null; } else { return uri.substring(i + 1 , uri.length()); } } }