Package com.aelitis.azureus.ui.selectedcontent

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

/**
* Created on Jun 9, 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.torrent.TOTorrent;

import com.aelitis.azureus.core.torrent.PlatformTorrentUtils;
import com.aelitis.azureus.ui.selectedcontent.ISelectedContent;
import com.aelitis.azureus.ui.selectedcontent.SelectedContent;
import com.aelitis.azureus.util.PlayUtils;

/**
* @author TuxPaper
* @created Jun 9, 2008
*
*/
public class SelectedContentV3
  implements ISelectedContent
{

  private final SelectedContent content;

  private boolean isPlatformContent;

  private boolean canPlay;

  private String thumbURL;
 
  private byte[] imageBytes;
 
  private DownloadUrlInfo downloadInfo;

    // if you add more fields here be sure to amend 'sameAs' logic below
 
 
  public SelectedContentV3(SelectedContent content) {
    this.content = content;
    this.setDownloadManager(content.getDownloadManager());
  }

  public SelectedContentV3() {
    content = new SelectedContent();
  }

  public SelectedContentV3(String hash, String displayName, boolean isPlatformContent,
      boolean canPlay) {
    this.isPlatformContent = isPlatformContent;
    this.canPlay = canPlay;
    content = new SelectedContent(hash, displayName);
  }

  public SelectedContentV3(DownloadManager dm) throws Exception {
    content = new SelectedContent();
    setDownloadManager(dm);
  }

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

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#getDM()
  public DownloadManager getDownloadManager() {
    return content.getDownloadManager();
  }

  public int getFileIndex() {
    return content.getFileIndex();
  }
  public TOTorrent getTorrent(){
    return content.getTorrent();
  }
 
  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#getHash()
  public String getHash() {
    return content.getHash();
  }

  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#setDisplayName(java.lang.String)
  public void setDisplayName(String displayName) {
    content.setDisplayName(displayName);
  }

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

      setDisplayName(PlatformTorrentUtils.getContentTitle2(dm));
    }
  }

  public void setTorrent( TOTorrent torrent ){
    content.setTorrent( torrent );
   
    if ( torrent != null ){
     
      try {
        setHash(torrent.getHashWrapper().toBase32String());
      } catch (Exception e) {
        setHash(null);
      }
      setPlatformContent(PlatformTorrentUtils.isContent(torrent, true));
      setDisplayName(PlatformTorrentUtils.getContentTitle( torrent ));
      setCanPlay(PlayUtils.canUseEMP(torrent, -1));
      setImageBytes(PlatformTorrentUtils.getContentThumbnail(torrent));
    }
  }
 
  // @see com.aelitis.azureus.ui.selectedcontent.ISelectedContent#setHash(java.lang.String)
  public void setHash(String hash) {
    content.setHash(hash);
  }

  public void setHash(String hash, boolean isPlatformContent) {
    content.setHash(hash);
    setPlatformContent(isPlatformContent);
  }
 
  public boolean isPlatformContent() {
    return isPlatformContent;
  }

  public void setPlatformContent(boolean isPlatformContent) {
    this.isPlatformContent = isPlatformContent;
  }

  public boolean canPlay() {
    return canPlay;
  }

  public void setCanPlay(boolean canPlay) {
    this.canPlay = canPlay;
  }

  public String getThumbURL() {
    return thumbURL;
  }

  public void setThumbURL(String thumbURL) {
    this.thumbURL = thumbURL;
  }

  /**
   * @param imageBytes the imageBytes to set
   */
  public void setImageBytes(byte[] imageBytes) {
    this.imageBytes = imageBytes;
  }

  /**
   * @return the imageBytes
   */
  public byte[] getImageBytes() {
    return imageBytes;
  }

 
  // @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 == this ){
     
      return( true );
    }
   
    if ( _other instanceof SelectedContentV3 ){
     
      SelectedContentV3 other = (SelectedContentV3)_other;
     
      if ( !content.sameAs( other.content )){
       
        return( false );
      }
     
      if (   isPlatformContent != other.isPlatformContent ||
          canPlay != other.canPlay ){
       
        return( false );
      }
     
      if ( thumbURL != other.thumbURL ){
       
        if (   thumbURL == null ||
            other.thumbURL == null ||
            !thumbURL.equals( other.thumbURL )){
         
          return( false );
        }
      }
     
      if ( imageBytes != other.imageBytes ){
       
        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.SelectedContentV3

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.