From 8769d29ceffe3d0157278a62aaefd6c21d46fd01 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 27 Apr 2014 16:35:25 +0200 Subject: Made sure that the downloaded-attribute of FeedFile does not reach an inconsistent state (downloaded=false and file_url != null) --- src/de/danoeh/antennapod/feed/FeedFile.java | 150 ++++++++++++++++------------ 1 file changed, 85 insertions(+), 65 deletions(-) (limited to 'src/de/danoeh/antennapod/feed') diff --git a/src/de/danoeh/antennapod/feed/FeedFile.java b/src/de/danoeh/antennapod/feed/FeedFile.java index 28a9b1e10..a05533ebc 100644 --- a/src/de/danoeh/antennapod/feed/FeedFile.java +++ b/src/de/danoeh/antennapod/feed/FeedFile.java @@ -2,84 +2,104 @@ package de.danoeh.antennapod.feed; import java.io.File; -/** Represents a component of a Feed that has to be downloaded */ +/** + * Represents a component of a Feed that has to be downloaded + */ public abstract class FeedFile extends FeedComponent { - protected String file_url; - protected String download_url; - protected boolean downloaded; + protected String file_url; + protected String download_url; + protected boolean downloaded; - public FeedFile(String file_url, String download_url, boolean downloaded) { - super(); - this.file_url = file_url; - this.download_url = download_url; - this.downloaded = downloaded; - } + /** + * Creates a new FeedFile object. + * + * @param file_url The location of the FeedFile. If this is null, the downloaded-attribute + * will automatically be set to false. + * @param download_url The location where the FeedFile can be downloaded. + * @param downloaded true if the FeedFile has been downloaded, false otherwise. This parameter + * will automatically be interpreted as false if the file_url is null. + */ + public FeedFile(String file_url, String download_url, boolean downloaded) { + super(); + this.file_url = file_url; + this.download_url = download_url; + this.downloaded = (file_url != null) && downloaded; + } - public FeedFile() { + public FeedFile() { this(null, null, false); } - public abstract int getTypeAsInt(); + public abstract int getTypeAsInt(); - /** - * Update this FeedFile's attributes with the attributes from another - * FeedFile. This method should only update attributes which where read from - * the feed. - */ - public void updateFromOther(FeedFile other) { - super.updateFromOther(other); - this.download_url = other.download_url; - } + /** + * Update this FeedFile's attributes with the attributes from another + * FeedFile. This method should only update attributes which where read from + * the feed. + */ + public void updateFromOther(FeedFile other) { + super.updateFromOther(other); + this.download_url = other.download_url; + } - /** - * Compare's this FeedFile's attribute values with another FeedFile's - * attribute values. This method will only compare attributes which were - * read from the feed. - * - * @return true if attribute values are different, false otherwise - */ - public boolean compareWithOther(FeedFile other) { - if (super.compareWithOther(other)) { - return true; - } - if (!download_url.equals(other.download_url)) { - return true; - } - return false; - } - - /** Returns true if the file exists at file_url. */ - public boolean fileExists() { - if (file_url == null) { - return false; - } else { - File f = new File(file_url); - return f.exists(); - } - } + /** + * Compare's this FeedFile's attribute values with another FeedFile's + * attribute values. This method will only compare attributes which were + * read from the feed. + * + * @return true if attribute values are different, false otherwise + */ + public boolean compareWithOther(FeedFile other) { + if (super.compareWithOther(other)) { + return true; + } + if (!download_url.equals(other.download_url)) { + return true; + } + return false; + } - public String getFile_url() { - return file_url; - } + /** + * Returns true if the file exists at file_url. + */ + public boolean fileExists() { + if (file_url == null) { + return false; + } else { + File f = new File(file_url); + return f.exists(); + } + } - public void setFile_url(String file_url) { - this.file_url = file_url; - } + public String getFile_url() { + return file_url; + } - public String getDownload_url() { - return download_url; - } + /** + * Changes the file_url of this FeedFile. Setting this value to + * null will also set the downloaded-attribute to false. + */ + public void setFile_url(String file_url) { + this.file_url = file_url; + if (file_url == null) { + downloaded = false; + } + } - public void setDownload_url(String download_url) { - this.download_url = download_url; - } + public String getDownload_url() { + return download_url; + } - public boolean isDownloaded() { - return downloaded; - } + public void setDownload_url(String download_url) { + this.download_url = download_url; + } - public void setDownloaded(boolean downloaded) { - this.downloaded = downloaded; - } + public boolean isDownloaded() { + return downloaded; + } + + public void setDownloaded(boolean downloaded) { + this.downloaded = downloaded; + } } -- cgit v1.2.3