private boolean isTLDValid(int hostStartPos) { int step = 0; boolean illegalCharFound = false; while(pos + step > hostStartPos) { int currChar = peek(--step); if ('.' == currChar) { return !illegalCharFound; } // TLDs should start with a letter if (!isMember(ALPHA, currChar)) { illegalCharFound = true; } } return true; }
private boolean isTLDValid(int hostStartPos) { int step = 0; boolean illegalCharFound = false; while(pos + step > hostStartPos) { int currChar = peek(--step); if ('.' == currChar) { return !illegalCharFound; } // TLDs should start with a letter if (!isMember(ALPHA, currChar)) { illegalCharFound = true; } } return true; }
private boolean isTLDValid(int hostStartPos) { int step = 0; boolean illegalCharFound = false; while(pos + step > hostStartPos) { int currChar = peek(--step); if ('.' == currChar) { return !illegalCharFound; } // TLDs should start with a letter if (!isMember(ALPHA, currChar)) { illegalCharFound = true; } } return true; }
private String parseMember(int[][] set, int end) throws URISyntaxException { int start = pos; while (true) { int chr = peek(); if (chr == EOF || chr == end) { break; } else if (isMember(set, chr)) { advance(1); } else { break; } } return iri.substring(start, pos); }
private String parseMember(int[][] set, int end) throws URISyntaxException { int start = pos; while (true) { int chr = peek(); if (chr == EOF || chr == end) { break; } else if (isMember(set, chr)) { advance(1); } else { break; } } return iri.substring(start, pos); }
private String parseUserInfo() throws URISyntaxException { int start = pos; String userinfo = parsePctEncoded(uchar, '@', '/'); if ('@' == peek()) { advance(1); return userinfo; } else { pos = start; // reset return null; } }
private String parseUserInfo() throws URISyntaxException { int start = pos; String userinfo = parsePctEncoded(uchar, '@', '/'); if ('@' == peek()) { advance(1); return userinfo; } else { pos = start; // reset return null; } }
private String parseMember(int[][] set, int end) throws URISyntaxException { int start = pos; while (true) { int chr = peek(); if (chr == EOF || chr == end) { break; } else if (isMember(set, chr)) { advance(1); } else { break; } } return iri.substring(start, pos); }
private String parseUserInfo() throws URISyntaxException { int start = pos; String userinfo = parsePctEncoded(uchar, '@', '/'); if ('@' == peek()) { advance(1); return userinfo; } else { pos = start; // reset return null; } }
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); }
if ('[' == peek()) { advance(1); // IP-Literal parseMember(uchar, ']'); if (']' == peek()) { advance(1); return iri.substring(start, pos); else if (isMember(DIGIT, peek())) { URISyntaxException parsingException = null; int startPos = pos; break; if ('.' == peek()) { advance(1); if (i == 3 && (EOF == peek() || ':' == peek() || '/' == peek())) {
if ('[' == peek()) { advance(1); // IP-Literal parseMember(uchar, ']'); if (']' == peek()) { advance(1); return iri.substring(start, pos); else if (isMember(DIGIT, peek())) { URISyntaxException parsingException = null; int startPos = pos; break; if ('.' == peek()) { advance(1); if (i == 3 && (EOF == peek() || ':' == peek() || '/' == peek())) {
scheme = scheme + ':' + parseScheme(); int peek = peek(); if ('/' == peek && '/' == peek(1)) { advance(2); if (iri.indexOf('@') >= 0) { if (':' == peek()) { advance(1); String p = parseMember(DIGIT, '/'); int next = peek(); if ('/' == next || '?' == next || '#' == next || EOF == next) { path = parsePath(); path = parsePath(); if ('?' == peek()) { advance(1); query = parsePctEncoded(qchar, '#', EOF); if ('#' == peek()) { advance(1); fragment = parsePctEncoded(fchar, '#', EOF);
scheme = scheme + ':' + parseScheme(); int peek = peek(); if ('/' == peek && '/' == peek(1)) { advance(2); if (iri.indexOf('@') >= 0) { if (':' == peek()) { advance(1); String p = parseMember(DIGIT, '/'); int next = peek(); if ('/' == next || '?' == next || '#' == next || EOF == next) { path = parsePath(); path = parsePath(); if ('?' == peek()) { advance(1); query = parsePctEncoded(qchar, '#', EOF); if ('#' == peek()) { advance(1); fragment = parsePctEncoded(fchar, '#', EOF);
scheme = scheme + ':' + parseScheme(); int peek = peek(); if ('/' == peek && '/' == peek(1)) { advance(2); if (iri.indexOf('@') >= 0) { if (':' == peek()) { advance(1); String p = parseMember(DIGIT, '/'); int next = peek(); if ('/' == next || '?' == next || '#' == next || EOF == next) { path = parsePath(); path = parsePath(); if ('?' == peek()) { advance(1); query = parsePctEncoded(qchar, '#', EOF); if ('#' == peek()) { advance(1); fragment = parsePctEncoded(fchar, '#', EOF);