/*
* Created on 12 May 2008
* Created by Allan Crooks
* Copyright (C) 2007 Aelitis, All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* AELITIS, SAS au capital de 46,603.30 euros
* 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
*/
package org.gudy.azureus2.plugins.download.savelocation;
import java.io.File;
/**
* Used by {@link SaveLocationManager} - you create an instance, set the
* attributes here and return the value.
*
* @since 3.0.5.3
*/
public class SaveLocationChange {
/**
* The new location to move the download to.
*/
public File download_location = null;
/**
* The new name to give the download.
*/
public String download_name = null;
/**
* The new location to move the torrent to.
*/
public File torrent_location = null;
/**
* The new name to give the torrent.
*/
public String torrent_name = null;
/**
* String representation of this object.
*/
public final String toString() {
StringBuffer res = new StringBuffer("SaveLocationChange: ");
res.append("DL-LOC=");
res.append(download_location);
res.append(", DL-NAME=");
res.append(download_name);
res.append(", TOR-LOC=");
res.append(torrent_location);
res.append(", TOR-NAME=");
res.append(torrent_name);
return res.toString();
}
/**
* Given the location of the existing torrent, determine the new path
* to store the torrent.
*/
public final File normaliseTorrentLocation(File old_torrent_location) {
return this.normaliseTorrentLocation(old_torrent_location.getParentFile(), old_torrent_location.getName());
}
/**
* Given the location of the existing torrent, determine the new path
* to store the torrent.
*/
public final File normaliseTorrentLocation(File old_torrent_directory, String old_torrent_name) {
return new File(
(torrent_location != null) ? torrent_location : old_torrent_directory,
(torrent_name != null) ? torrent_name : old_torrent_name
);
}
/**
* Given the location of the existing download, determine the new path
* to store the download.
*/
public final File normaliseDownloadLocation(File old_download_location) {
return this.normaliseDownloadLocation(old_download_location.getParentFile(), old_download_location.getName());
}
/**
* Given the location of the existing download, determine the new path
* to store the download.
*/
public final File normaliseDownloadLocation(File old_download_directory, String old_download_name) {
return new File(
(download_location != null) ? download_location : old_download_directory,
(download_name != null) ? download_name : old_download_name
);
}
/**
* Returns <tt>true</tt> if this object indicates a new location for
* a download.
*/
public final boolean hasDownloadChange() {
return this.download_location != null || this.download_name != null;
}
/**
* Returns <tt>true</tt> if this object indicates a new location for
* a torrent.
*/
public final boolean hasTorrentChange() {
return this.torrent_location != null || this.torrent_name != null;
}
/**
* Returns <tt>true</tt> if this object represents a download location
* different to the one provided - it will check whether the location
* represented here is already the same as the one provided.
*/
public final boolean isDifferentDownloadLocation(File current_location) {
if (!hasDownloadChange()) {return false;}
return !current_location.equals(this.normaliseDownloadLocation(current_location));
}
/**
* Returns <tt>true</tt> if this object represents a torrent location
* different to the one provided - it will check whether the location
* represented here is already the same as the one provided.
*/
public final boolean isDifferentTorrentLocation(File current_location) {
if (!hasTorrentChange()) {return false;}
return !current_location.equals(this.normaliseTorrentLocation(current_location));
}
}