@Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append(isMinInclusive() ? "[" : "("); if (getMin() != null) { buf.append(getMin().toString()); } if (getMax() != null) { if (!getMax().equals(getMin())) { buf.append(","); buf.append(getMax().toString()); } } else { buf.append(","); } buf.append(isMaxInclusive() ? "]" : ")"); return buf.toString(); } }
@Override public VersionRange getIntersection(VersionRange... ranges) { List<VersionRange> list = new ArrayList<>(); for (VersionRange range : ranges) { list.add(range); } MultipleVersionRange intersection = new MultipleVersionRange(list); return new DefaultVersionRange( intersection.getMin(), intersection.isMinInclusive(), intersection.getMax(), intersection.isMaxInclusive()); }
result = new DefaultVersionRange(version, lowerBoundInclusive, version, upperBoundInclusive); result = new DefaultVersionRange(lowerVersion, lowerBoundInclusive, upperVersion, upperBoundInclusive);
/** * Calculate the intersection of one or more {@link VersionRange} instances, returning a single {@link VersionRange} * as the result. */ public static VersionRange intersection(Collection<VersionRange> ranges) { Assert.notNull(ranges, "Version ranges must not be null."); Assert.isTrue(ranges.size() >= 1, "Version ranges must not be empty."); Version min = null; Version max = null; boolean minInclusive = false; boolean maxInclusive = false; for (VersionRange range : ranges) { if (min == null || range.getMin().compareTo(min) > 0) { min = range.getMin(); minInclusive = range.isMinInclusive(); } if (max == null || range.getMax().compareTo(max) < 0) { max = range.getMax(); maxInclusive = range.isMaxInclusive(); } } return new DefaultVersionRange(min, minInclusive, max, maxInclusive); }
ranges.add(new DefaultVersionRange(min, minInclusive, max, maxInclusive)); ranges.add(new DefaultVersionRange(min, minInclusive, max, maxInclusive));