@Override public Collection<ReleasedVersion> getReleasedVersions(String headVersion, Date headDate, Collection<String> versions, String tagPrefix) throws RevisionNotFoundException { //collect the versions if (versions.size() == 0 && headVersion == null) { throw new IllegalArgumentException("Not enough versions supplied." + "\n I need at least 1 version." + "\n - head version: " + headVersion + "\n - versions: " + versions); } if (headVersion != null && headDate == null) { throw new IllegalArgumentException("headDate cannot be null if headVersion is provided"); } List<String> theVersions = new ArrayList<>(versions); LinkedList<ReleasedVersion> result = new LinkedList<>(); for (int i = 0; i < theVersions.size(); i++) { String v = theVersions.get(i); String tag = tagPrefix + v; //the value of 'next' element in collection is the 'previous version' because the input versions are sorted descending String previous = (theVersions.size() > (i + 1)) ? tagPrefix + theVersions.get(i + 1) : null; Date date = dateProvider.getDate(tag); result.add(new DefaultReleasedVersion(v, date, tag, previous)); } if (headVersion != null) { String prev = result.isEmpty() ? null : result.get(0).getRev(); DefaultReleasedVersion head = new DefaultReleasedVersion(headVersion, headDate, "HEAD", prev); result.addFirst(head); } return result; }
@Override public Collection<ReleasedVersion> getReleasedVersions(String headVersion, Date headDate, Collection<String> versions, String tagPrefix) throws RevisionNotFoundException { //collect the versions if (versions.size() == 0 && headVersion == null) { throw new IllegalArgumentException("Not enough versions supplied." + "\n I need at least 1 version." + "\n - head version: " + headVersion + "\n - versions: " + versions); } if (headVersion != null && headDate == null) { throw new IllegalArgumentException("headDate cannot be null if headVersion is provided"); } List<String> theVersions = new ArrayList<>(versions); LinkedList<ReleasedVersion> result = new LinkedList<>(); for (int i = 0; i < theVersions.size(); i++) { String v = theVersions.get(i); String tag = tagPrefix + v; //the value of 'next' element in collection is the 'previous version' because the input versions are sorted descending String previous = (theVersions.size() > (i + 1)) ? tagPrefix + theVersions.get(i + 1) : null; Date date = dateProvider.getDate(tag); result.add(new DefaultReleasedVersion(v, date, tag, previous)); } if (headVersion != null) { String prev = result.isEmpty() ? null : result.get(0).getRev(); DefaultReleasedVersion head = new DefaultReleasedVersion(headVersion, headDate, "HEAD", prev); result.addFirst(head); } return result; }
@Override public Collection<ReleasedVersion> getReleasedVersions(String headVersion, Date headDate, Collection<String> versions, String tagPrefix) { //collect the versions if (versions.size() == 0 && headVersion == null) { throw new IllegalArgumentException("Not enough versions supplied." + "\n I need at least 1 version." + "\n - head version: " + headVersion + "\n - versions: " + versions); } if (headVersion != null && headDate == null) { throw new IllegalArgumentException("headDate cannot be null if headVersion is provided"); } List<String> theVersions = new ArrayList<String>(versions); LinkedList<ReleasedVersion> result = new LinkedList<ReleasedVersion>(); for (int i = 0; i < theVersions.size(); i++) { String v = theVersions.get(i); String tag = tagPrefix + v; //the value of 'next' element in collection is the 'previous version' because the input versions are sorted descending String previous = (theVersions.size() > (i+1))? tagPrefix + theVersions.get(i+1) : null; Date date = dateProvider.getDate(tag); result.add(new DefaultReleasedVersion(v, date, tag, previous)); } if (headVersion != null) { String prev = result.isEmpty() ? null : result.get(0).getRev(); DefaultReleasedVersion head = new DefaultReleasedVersion(headVersion, headDate, "HEAD", prev); result.addFirst(head); } return result; }