package com.openseedbox.backend.node;
import com.openseedbox.backend.AbstractTorrent;
import com.openseedbox.backend.IFile;
import com.openseedbox.backend.IPeer;
import com.openseedbox.backend.ITracker;
import com.openseedbox.backend.TorrentState;
import com.openseedbox.code.Util;
import com.openseedbox.models.Node;
import java.util.List;
public class NodeTorrent extends AbstractTorrent {
private String name;
private double metadataPercentComplete;
private double percentComplete;
private long downloadSpeedBytes;
private long uploadSpeedBytes;
private String torrentHash;
private String errorMessage;
private long totalSizeBytes;
private long downloadedBytes;
private long uploadedBytes;
private TorrentState state;
private Node node;
private String zipDownloadLink;
public NodeTorrent(Node n) {
node = n;
}
public void setNode(Node n) {
node = n;
}
public String getName() {
return Util.URLDecode(name);
}
public double getMetadataPercentComplete() {
return metadataPercentComplete;
}
public double getPercentComplete() {
return percentComplete;
}
public long getDownloadSpeedBytes() {
return downloadSpeedBytes;
}
public long getUploadSpeedBytes() {
return uploadSpeedBytes;
}
public String getTorrentHash() {
return torrentHash;
}
public String getErrorMessage() {
return errorMessage;
}
public long getTotalSizeBytes() {
return totalSizeBytes;
}
public long getDownloadedBytes() {
return downloadedBytes;
}
public long getUploadedBytes() {
return uploadedBytes;
}
public TorrentState getStatus() {
return state;
}
private transient List<IFile> _files;
public List<IFile> getFiles() {
if (_files == null) {
_files = node.getNodeBackend().getTorrentFiles(this.getTorrentHash());
}
return _files;
}
private transient List<IPeer> _peers;
public List<IPeer> getPeers() {
if (_peers == null) {
_peers = node.getNodeBackend().getTorrentPeers(this.getTorrentHash());
}
return _peers;
}
private transient List<ITracker> _trackers;
public List<ITracker> getTrackers() {
if (_trackers == null) {
_trackers = node.getNodeBackend().getTorrentTrackers(this.getTorrentHash());
}
return _trackers;
}
public void setName(String name) {
this.name = name;
}
public void setMetadataPercentComplete(double metadataPercentComplete) {
this.metadataPercentComplete = metadataPercentComplete;
}
public void setPercentComplete(double percentComplete) {
this.percentComplete = percentComplete;
}
public void setDownloadSpeedBytes(long downloadSpeedBytes) {
this.downloadSpeedBytes = downloadSpeedBytes;
}
public void setUploadSpeedBytes(long uploadSpeedBytes) {
this.uploadSpeedBytes = uploadSpeedBytes;
}
public void setTorrentHash(String torrentHash) {
this.torrentHash = torrentHash;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public void setTotalSizeBytes(long totalSizeBytes) {
this.totalSizeBytes = totalSizeBytes;
}
public void setDownloadedBytes(long downloadedBytes) {
this.downloadedBytes = downloadedBytes;
}
public void setUploadedBytes(long uploadedBytes) {
this.uploadedBytes = uploadedBytes;
}
public void setStatus(TorrentState state) {
this.state = state;
}
public String getZipDownloadLink() {
return String.format("%s%s",
node.getNodeDownloadUrl(), zipDownloadLink);
}
public void setZipDownloadLink(String link) {
this.zipDownloadLink = link;
}
}