package com.github.signed.changelog; import java.util.Iterator; import java.util.List; import java.util.Optional; public class Version implements Iterable<Category> { private final Optional<ReleaseDate> releaseDate; private final Optional<VersionNumber> versionNumber; private final Optional<Link> link; private final List<Category> categories; public Version(Optional<ReleaseDate> releaseDate, Optional<VersionNumber> versionNumber, Optional<Link> link, List<Category> categories) { this.releaseDate = releaseDate; this.versionNumber = versionNumber; this.link = link; this.categories = categories; } @Override public Iterator<Category> iterator() { return categories.iterator(); } public Optional<ReleaseDate> releaseDate() { return releaseDate; } public Optional<VersionNumber> versionNumber(){ return versionNumber; } public Optional<Link> link(){ return link; } }