// Path: common/src/main/java/com/turn/ttorrent/common/AnnounceableInformation.java
// public interface AnnounceableInformation extends TorrentHash {
// 
//   /**
//    * @return number of bytes uploaded by the client for this torrent
//    */
//   long getUploaded();
// 
//   /**
//    * @return number of bytes downloaded by the client for this torrent
//    */
//   long getDownloaded();
// 
//   /**
//    * @return number of bytes left to download by the client for this torrent
//    */
//   long getLeft();
// 
//   /**
//    * @return all tracker for announce
//    * @see <a href="http://bittorrent.org/beps/bep_0012.html"></a>
//    */
//   List<List<String>> getAnnounceList();
// 
//   /**
//    * @return main announce url for tracker
//    */
//   String getAnnounce();
// 
// }


import com.turn.ttorrent.common.AnnounceableInformation;
import com.turn.ttorrent.common.TorrentHash;
import java.util.List;
package com.turn.ttorrent.client;



class AnnounceableInformationImpl implements AnnounceableInformation {

  private final long uploaded;
  private final long downloaded;
  private final long left;
  private final TorrentHash torrentHash;
  private final List<List<String>> announceUrls;
  private final String announce;

  public AnnounceableInformationImpl(long uploaded,
                                     long downloaded,
                                     long left,
                                     TorrentHash torrentHash,
                                     List<List<String>> announceUrls,
                                     String announce) {
    this.uploaded = uploaded;
    this.downloaded = downloaded;
    this.left = left;
    this.torrentHash = torrentHash;
    this.announceUrls = announceUrls;
// Path: common/src/main/java/com/turn/ttorrent/common/AnnounceableInformation.java
// public interface AnnounceableInformation extends TorrentHash {
// 
//   /**
//    * @return number of bytes uploaded by the client for this torrent
//    */
//   long getUploaded();
// 
//   /**
//    * @return number of bytes downloaded by the client for this torrent
//    */
//   long getDownloaded();
// 
//   /**
//    * @return number of bytes left to download by the client for this torrent
//    */
//   long getLeft();
// 
//   /**
//    * @return all tracker for announce
//    * @see <a href="http://bittorrent.org/beps/bep_0012.html"></a>
//    */
//   List<List<String>> getAnnounceList();
// 
//   /**
//    * @return main announce url for tracker
//    */
//   String getAnnounce();
// 
// }


// Path: ttorrent-client/src/main/java/com/turn/ttorrent/client/AnnounceableInformationImpl.java
import com.turn.ttorrent.common.AnnounceableInformation;
import com.turn.ttorrent.common.TorrentHash;
import java.util.List;

package com.turn.ttorrent.client;



class AnnounceableInformationImpl implements AnnounceableInformation {

  private final long uploaded;
  private final long downloaded;
  private final long left;
  private final TorrentHash torrentHash;
  private final List<List<String>> announceUrls;
  private final String announce;

  public AnnounceableInformationImpl(long uploaded,
                                     long downloaded,
                                     long left,
                                     TorrentHash torrentHash,
                                     List<List<String>> announceUrls,
                                     String announce) {
    this.uploaded = uploaded;
    this.downloaded = downloaded;
    this.left = left;
    this.torrentHash = torrentHash;
    this.announceUrls = announceUrls;
    this.announce = announce;