public synchronized void toString(StringBuffer sb) { if (fmtString != null) sb.append(fmtString); else { int start = sb.length(); sb.append("format"); //$NON-NLS-1$ if (topFragment.getPadValue() != null) { sb.append('('); topFragment.toString(sb); sb.append(')'); } else topFragment.toString(sb); fmtString = sb.substring(start); } } }
Fragment compile(String fmt, int pos, int maxPos) throws VersionFormatException { format = fmt; if (start >= maxPos) throw new VersionFormatException(Messages.format_is_empty); start = pos; current = pos; eos = maxPos; currentList = new ArrayList<Fragment>(); while (current < eos) parseFragment(); Fragment topFrag; switch (currentList.size()) { case 0 : throw new VersionFormatException(Messages.format_is_empty); case 1 : Fragment frag = currentList.get(0); if (frag.isGroup()) { topFrag = frag; break; } // Fall through to default default : topFrag = createGroupFragment(null, EXACT_ONE_QUALIFIER, currentList.toArray(new Fragment[currentList.size()]), false); } currentList = null; return topFrag; }
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; }
if (!fragment.parseOne(segments, version, maxPos, info)) return false; if (!fragment.parseOne(segments, version, maxPos, info)) { info.popState(segments, fragment); break; if (max != Integer.MAX_VALUE) { for (; idx < max; ++idx) fragment.setDefaults(segments); if (fragments[fragIdx].getQualifier().parse(fragments, fragIdx, segments, version, maxPos, info)) return true;
boolean parseOne(List<Comparable<?>> segments, String version, int maxPos, TreeInfo info) { if (array) { ArrayList<Comparable<?>> subSegs = new ArrayList<Comparable<?>>(); boolean success = fragments[0].getQualifier().parse(fragments, 0, subSegs, version, maxPos, info); if (!success || subSegs.isEmpty()) return false; Comparable<?> padValue = info.getPadValue(); if (padValue != null) info.setPadValue(null); // Prevent outer group from getting this. else padValue = getPadValue(); padValue = VersionParser.removeRedundantTrail(segments, padValue); segments.add(new VersionVector(subSegs.toArray(new Comparable[subSegs.size()]), padValue)); return true; } if (fragments[0].getQualifier().parse(fragments, 0, segments, version, maxPos, info)) { Comparable<?> padValue = getPadValue(); if (padValue != null) info.setPadValue(padValue); return true; } return false; }
void toString(StringBuffer sb) { if (array) { sb.append('<'); for (int idx = 0; idx < fragments.length; ++idx) fragments[idx].toString(sb); sb.append('>'); } else { if (getQualifier() == VersionFormatParser.ZERO_OR_ONE_QUALIFIER) { sb.append('['); for (int idx = 0; idx < fragments.length; ++idx) fragments[idx].toString(sb); sb.append(']'); } else { sb.append('('); for (int idx = 0; idx < fragments.length; ++idx) fragments[idx].toString(sb); sb.append(')'); } } super.toString(sb); } }
void toString(StringBuffer sb) { if (ignored) { sb.append('='); sb.append('!'); sb.append(';'); } if (defaultValue != null) { sb.append('='); VersionFormat.rawToString(sb, false, defaultValue); sb.append(';'); } if (padValue != null) { sb.append('='); sb.append('p'); VersionFormat.rawToString(sb, false, padValue); sb.append(';'); } super.toString(sb); } }
Fragment getFirstLeaf() { return fragments[0].getFirstLeaf(); }
void toString(StringBuffer sb) { sb.append('d'); if (delimChars != null) appendCharacterRange(sb, delimChars, inverted); super.toString(sb); } }
void setDefaults(List<Comparable<?>> segments) { Comparable<?> dflt = getDefaultValue(); if (dflt != null) { // A group default overrides any defaults within the // group fragments super.setDefaults(segments); } else { // Assign defaults for all fragments for (int idx = 0; idx < fragments.length; ++idx) fragments[idx].setDefaults(segments); } }
public String toString() { StringBuffer sb = new StringBuffer(); toString(sb); return sb.toString(); }
void toString(StringBuffer sb) { if (!(qualifier == VersionFormatParser.EXACT_ONE_QUALIFIER || (qualifier == VersionFormatParser.ZERO_OR_ONE_QUALIFIER && this.isGroup()))) qualifier.toString(sb); } }