package net.filebot.ui.subtitle.upload; import static java.util.Arrays.*; import java.io.File; import java.util.List; import net.filebot.Language; class SubtitleGroup { private final SubtitleMapping[] mapping; public SubtitleGroup(List<SubtitleMapping> mapping) { this.mapping = mapping.toArray(new SubtitleMapping[mapping.size()]); } public void setState(Status status) { for (SubtitleMapping it : mapping) { it.setState(status); } } public boolean isUploadReady() { return stream(mapping).allMatch(SubtitleMapping::isUploadReady); } public Object getIdentity() { return mapping[0].getIdentity(); } public Language getLanguage() { return mapping[0].getLanguage(); } public File[] getVideoFiles() { return stream(mapping).map(SubtitleMapping::getVideo).toArray(File[]::new); } public File[] getSubtitleFiles() { return stream(mapping).map(SubtitleMapping::getSubtitle).toArray(File[]::new); } @Override public String toString() { return asList(getIdentity(), getLanguage(), asList(getVideoFiles()), asList(getSubtitleFiles())).toString(); }; }