Package com.aelitis.azureus.ui.selectedcontent

Source Code of com.aelitis.azureus.ui.selectedcontent.SelectedContent

/**
* Created on May 6, 2008
*
* Copyright 2008 Vuze, Inc.  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; version 2 of the License only.
*
* 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
*/

package com.aelitis.azureus.ui.selectedcontent;

import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.torrent.TOTorrent;
import org.gudy.azureus2.core3.util.Base32;
import org.gudy.azureus2.core3.util.HashWrapper;


import com.aelitis.azureus.core.AzureusCoreFactory;

/**
* Represents a piece of content (torrent) that is selected
*
* @author TuxPaper
* @created May 6, 2008
*
*/
public class SelectedContent implements ISelectedContent
{
  private String hash;

  private DownloadManager dm;
  private int        file_index = -1;
  private TOTorrent    torrent;

  private String displayName;
 
  private DownloadUrlInfo downloadInfo;

    // add more fields and you need to amend sameAs below
 
  /**
   * @param dm2
   * @throws Exception
   */
  public SelectedContent(DownloadManager dm){
    setDownloadManager(dm);
  }

  public SelectedContent(DownloadManager dm, int _file_index ){
    setDownloadManager(dm);
    file_index = _file_index;
  }
 
  /**
   *
   */
  public SelectedContent(String hash, String displayName) {
    this.hash = hash;
    this.displayName = displayName;
  }

  public SelectedContent() {
  }

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#getHash()
  public String getHash() {
    return hash;
  }

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#setHash(java.lang.String)
  public void setHash(String hash) {
    this.hash = hash;
  }

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#getDM()
  public DownloadManager getDownloadManager() {
    if (dm == null && hash != null) {
      try {
        GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
        return gm.getDownloadManager(new HashWrapper(Base32.decode(hash)));
      } catch (Exception ignore) {
       
      }
    }
    return dm;
  }

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#setDM(org.gudy.azureus2.core3.download.DownloadManager)
  public void setDownloadManager(DownloadManager _dm) {
    dm = _dm;
    if ( dm != null ){
      setTorrent( dm.getTorrent());
      setDisplayName(dm.getDisplayName());
    }
  }

  public int getFileIndex() {
    return file_index;
  }
 
  public TOTorrent getTorrent() {
    return( torrent );
  }
 
  public void setTorrent(TOTorrent _torrent) {
    torrent = _torrent;
   
    if ( torrent != null ){
      try {
        hash = torrent.getHashWrapper().toBase32String();
      } catch (Exception e) {
        hash = null;
      }
    }
  }
 
  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#getDisplayName()
  public String getDisplayName() {
    return displayName;
  }

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#setDisplayName(java.lang.String)
  public void setDisplayName(String displayName) {
    this.displayName = displayName;
  }
 
  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#getDownloadInfo()
  public DownloadUrlInfo getDownloadInfo() {
    return downloadInfo;
  }
 
  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#setDownloadInfo(com.aelitis.azureus.ui.selectedcontent.SelectedContentDownloadInfo)
  public void setDownloadInfo(DownloadUrlInfo info) {
    this.downloadInfo = info;
  }
   
  public boolean
  sameAs(
    ISelectedContent _other )
  {
    if ( _other instanceof SelectedContent ){
     
      SelectedContent other = (SelectedContent)_other;
   
      if ( hash != other.hash ){
       
        if (   hash == null ||
            other.hash == null ||
            !hash.equals( other.hash )){
         
          return( false );
        }
      }
     
      if (   dm != other.dm ||
          torrent  != other.torrent ||
          file_index != other.file_index ){
       
        return( false );
      }
     
      if ( displayName != other.displayName ){
       
        if (   displayName == null ||
            other.displayName == null ||
            !displayName.equals( other.displayName )){
         
          return( false );
        }
      }
     
      if ( downloadInfo != other.downloadInfo ){
       
        if (   downloadInfo == null ||
            other.downloadInfo == null ||
            !downloadInfo.sameAs( other.downloadInfo )){
         
          return( false );
        }
      }
     
      return( true );
    }
   
    return( false );
  }
}
TOP

Related Classes of com.aelitis.azureus.ui.selectedcontent.SelectedContent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.