List<Comparable<?>> parse(String version, int start, int maxPos) { if (start == maxPos) throw new IllegalArgumentException(NLS.bind(Messages.format_0_unable_to_parse_empty_version, this, version.substring(start, maxPos))); TreeInfo info = new TreeInfo(topFragment, start); ArrayList<Comparable<?>> entries = new ArrayList<Comparable<?>>(5); if (!(topFragment.parse(entries, version, maxPos, info) && info.getPosition() == maxPos)) throw new IllegalArgumentException(NLS.bind(Messages.format_0_unable_to_parse_1, this, version.substring(start, maxPos))); entries.add(VersionParser.removeRedundantTrail(entries, info.getPadValue())); return entries; }
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); int litLen = string.length(); if (pos + litLen > maxPos) return false; for (int idx = 0; idx < litLen; ++idx, ++pos) { if (string.charAt(idx) != version.charAt(pos)) return false; } info.setPosition(pos); return true; }
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); if (pos >= maxPos) return false;
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); maxPos = checkRange(pos, maxPos); if (maxPos < 0)
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); maxPos = checkRange(pos, maxPos); if (maxPos < 0)
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); maxPos = checkRange(pos, maxPos); if (maxPos < 0)
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); if (pos >= maxPos || version.charAt(pos) != 'p') return false; int[] position = new int[] {++pos}; Comparable<?> v = VersionParser.parseRawElement(version, position, maxPos); if (v == null) return false; if (!isIgnored()) info.setPadValue(v); info.setPosition(position[0]); return true; }
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int[] position = new int[] {info.getPosition()}; Comparable<?> v = VersionParser.parseRawElement(version, position, maxPos); if (v == null) return false; if (!isIgnored()) segments.add(v); info.setPosition(position[0]); return true; }
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { int pos = info.getPosition(); if (pos < maxPos && isMatch(version, pos)) { // Just swallow, a delimiter does not contribute to the vector. // info.setPosition(pos + 1); return true; } return false; }