/** * Helper method in support of matchNumericListOrRange * * @param value a {@link java.lang.String} object. * @param pattern a {@link java.lang.String} object. * @return a boolean. */ public static boolean matchRange(final String value, final String pattern) { final int dashCount = countChar('-', pattern); if ("*".equals(pattern)) { return true; } else if (dashCount == 0) { return Long.parseLong(pattern, 10) == Long.parseLong(value, 10); } else if (dashCount > 1) { return false; } else if (dashCount == 1) { final String[] ar = pattern.split("-"); final long rangeBegin = Long.parseLong(ar[0]); final long rangeEnd = Long.parseLong(ar[1]); final long ip = Long.parseLong(value); return (ip >= rangeBegin && ip <= rangeEnd); } return false; }
/** * Helper method in support of matchNumericListOrRange * * @param value a {@link java.lang.String} object. * @param pattern a {@link java.lang.String} object. * @return a boolean. */ public static boolean matchRangeHex(final String value, final String pattern) { final int dashCount = countChar('-', pattern); if ("*".equals(pattern)) { return true; } else if (dashCount == 0) { // Convert values to hex integers and compare return Long.parseLong(pattern, 16) == Long.parseLong(value, 16); } else if (dashCount > 1) { return false; } else if (dashCount == 1) { final String[] ar = pattern.split("-"); final long rangeBegin = Long.parseLong(ar[0], 16); final long rangeEnd = Long.parseLong(ar[1], 16); final long ip = Long.parseLong(value, 16); return (ip >= rangeBegin && ip <= rangeEnd); } return false; }