package net.filebot.ui.subtitle.upload;
import static java.util.Arrays.*;
import java.io.File;
import net.filebot.Language;
import net.filebot.util.ui.AbstractBean;
import net.filebot.web.Movie;
class SubtitleMapping extends AbstractBean {
private Movie identity;
private File video;
private File subtitle;
private Language language;
private Status status;
public SubtitleMapping(File subtitle, File video, Language language) {
this.subtitle = subtitle;
this.video = video;
this.language = language;
this.status = (video == null || subtitle == null) ? Status.IllegalInput : Status.CheckPending;
}
public boolean isCheckReady() {
return subtitle != null && status == Status.CheckPending;
}
public boolean isUploadReady() {
return identity != null && subtitle != null && video != null && language != null && status == Status.UploadReady;
}
public Object getGroup() {
return asList(identity.getImdbId(), language.getCode());
}
public Object getIdentity() {
return identity;
}
public File getSubtitle() {
return subtitle;
}
public File getVideo() {
return video;
}
public Language getLanguage() {
return language;
}
public Status getStatus() {
return status;
}
public void setVideo(File video) {
this.video = video;
firePropertyChange("video", null, this.video);
}
public void setIdentity(Movie identity) {
this.identity = identity;
firePropertyChange("identity", null, this.identity);
}
public void setLanguage(Language language) {
this.language = language;
firePropertyChange("language", null, this.language);
}
public void setState(Status status) {
this.status = status;
firePropertyChange("status", null, this.status);
}
@Override
public String toString() {
return asList(identity, video, subtitle, language, status).toString();
};
}