private String parsePctEncoded(int[][] set, int end1, int end2) throws URISyntaxException { int start = pos; while (true) { int chr = peek(); if (chr == EOF || chr == end1 || chr == end2) { break; // optimize end character } else if (('a' <= chr && chr <= 'z') || ('A' <= chr && chr <= 'Z') || ('0' <= chr && chr <= '9')) { advance(1); } else if ('%' == chr) { if (Arrays.binarySearch(HEXDIG, peek(1)) >= 0 && Arrays.binarySearch(HEXDIG, peek(2)) >= 0) { advance(3); } else { throw error("Illegal percent encoding"); } } else if (isMember(set, chr)) { advance(1); } else { break; } } return iri.substring(start, pos); }
private String parsePctEncoded(int[][] set, int end1, int end2) throws URISyntaxException { int start = pos; while (true) { int chr = peek(); if (chr == EOF || chr == end1 || chr == end2) { break; // optimize end character } else if (('a' <= chr && chr <= 'z') || ('A' <= chr && chr <= 'Z') || ('0' <= chr && chr <= '9')) { advance(1); } else if ('%' == chr) { if (Arrays.binarySearch(HEXDIG, peek(1)) >= 0 && Arrays.binarySearch(HEXDIG, peek(2)) >= 0) { advance(3); } else { throw error("Illegal percent encoding"); } } else if (isMember(set, chr)) { advance(1); } else { break; } } return iri.substring(start, pos); }
private String parsePctEncoded(int[][] set, int end1, int end2) throws URISyntaxException { int start = pos; while (true) { int chr = peek(); if (chr == EOF || chr == end1 || chr == end2) { break; // optimize end character } else if (('a' <= chr && chr <= 'z') || ('A' <= chr && chr <= 'Z') || ('0' <= chr && chr <= '9')) { advance(1); } else if ('%' == chr) { if (Arrays.binarySearch(HEXDIG, peek(1)) >= 0 && Arrays.binarySearch(HEXDIG, peek(2)) >= 0) { advance(3); } else { throw error("Illegal percent encoding"); } } else if (isMember(set, chr)) { advance(1); } else { break; } } return iri.substring(start, pos); }