/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.dlect.immutable.model; import java.net.URI; import java.util.Objects; import org.dlect.model.LectureDownload; /** * * @author lee */ public class ImmutableLectureDownload { private final URI downloadURL; private final String downloadExtension; private final boolean downloaded; private final boolean downloadEnabled; public ImmutableLectureDownload(URI downloadURL, String downloadExtension, boolean downloaded, boolean downloadEnabled) { this.downloadURL = downloadURL; this.downloadExtension = downloadExtension; this.downloaded = downloaded; this.downloadEnabled = downloadEnabled; } public ImmutableLectureDownload(URI downloadURL, String downloadExtension) { this.downloadURL = downloadURL; this.downloadExtension = downloadExtension; this.downloaded = false; this.downloadEnabled = false; } public URI getDownloadURL() { return downloadURL; } public String getDownloadExtension() { return downloadExtension; } public boolean isDownloaded() { return downloaded; } public boolean isDownloadEnabled() { return downloadEnabled; } @Override public int hashCode() { return Objects.hashCode(this.downloadURL); } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final ImmutableLectureDownload other = (ImmutableLectureDownload) obj; return Objects.equals(this.getDownloadURL(), other.getDownloadURL()); } @Override public String toString() { return "ImmutableLectureDownload{" + "downloadURL=" + downloadURL + ", downloadExtension=" + downloadExtension + ", downloaded=" + downloaded + ", downloadEnabled=" + downloadEnabled + '}'; } public static ImmutableLectureDownload from(LectureDownload value) { return new ImmutableLectureDownload(value.getDownloadURL(), value.getDownloadExtension(), value.isDownloaded(), value.isDownloadEnabled()); } }