⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 categoryimpl.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   CategoryImpl.java

package org.gudy.azureus2.core3.category.impl;

import com.aelitis.azureus.core.networkmanager.LimitedRateGroup;
import java.util.ArrayList;
import java.util.List;
import org.gudy.azureus2.core3.category.Category;
import org.gudy.azureus2.core3.category.CategoryListener;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.download.DownloadManagerState;
import org.gudy.azureus2.core3.util.ListenerManager;
import org.gudy.azureus2.core3.util.ListenerManagerDispatcher;

// Referenced classes of package org.gudy.azureus2.core3.category.impl:
//			CategoryManagerImpl

public class CategoryImpl
	implements Category, Comparable
{

	private String sName;
	private int type;
	private List managers;
	private int upload_speed;
	private int download_speed;
	private LimitedRateGroup upload_limiter = new LimitedRateGroup() {

		final CategoryImpl this$0;

		public String getName()
		{
			return (new StringBuilder()).append("cat_up: ").append(sName).toString();
		}

		public int getRateLimitBytesPerSecond()
		{
			return upload_speed;
		}

			
			{
				this$0 = CategoryImpl.this;
				super();
			}
	};
	private LimitedRateGroup download_limiter = new LimitedRateGroup() {

		final CategoryImpl this$0;

		public String getName()
		{
			return (new StringBuilder()).append("cat_down: ").append(sName).toString();
		}

		public int getRateLimitBytesPerSecond()
		{
			return download_speed;
		}

			
			{
				this$0 = CategoryImpl.this;
				super();
			}
	};
	private static final int LDT_CATEGORY_DMADDED = 1;
	private static final int LDT_CATEGORY_DMREMOVED = 2;
	private ListenerManager category_listeners;

	public CategoryImpl(String sName, int maxup, int maxdown)
	{
		managers = new ArrayList();
		category_listeners = ListenerManager.createManager("CatListenDispatcher", new ListenerManagerDispatcher() {

			final CategoryImpl this$0;

			public void dispatch(Object _listener, int type, Object value)
			{
				CategoryListener target = (CategoryListener)_listener;
				if (type == 1)
					target.downloadManagerAdded(CategoryImpl.this, (DownloadManager)value);
				else
				if (type == 2)
					target.downloadManagerRemoved(CategoryImpl.this, (DownloadManager)value);
			}

			
			{
				this$0 = CategoryImpl.this;
				super();
			}
		});
		this.sName = sName;
		type = 0;
		upload_speed = maxup;
		download_speed = maxdown;
	}

	public CategoryImpl(String sName, int type)
	{
		managers = new ArrayList();
		category_listeners = ListenerManager.createManager("CatListenDispatcher", new 3());
		this.sName = sName;
		this.type = type;
	}

	public void addCategoryListener(CategoryListener l)
	{
		category_listeners.addListener(l);
	}

	public void removeCategoryListener(CategoryListener l)
	{
		category_listeners.removeListener(l);
	}

	public String getName()
	{
		return sName;
	}

	public int getType()
	{
		return type;
	}

	public List getDownloadManagers(List all_dms)
	{
		if (type == 0)
			return managers;
		if (type == 1)
			return all_dms;
		List result = new ArrayList();
		for (int i = 0; i < all_dms.size(); i++)
		{
			DownloadManager dm = (DownloadManager)all_dms.get(i);
			Category cat = dm.getDownloadState().getCategory();
			if (cat == null || cat.getType() == 2)
				result.add(dm);
		}

		return result;
	}

	public void addManager(DownloadManagerState manager_state)
	{
		if (manager_state.getCategory() != this)
		{
			manager_state.setCategory(this);
			return;
		}
		DownloadManager manager = manager_state.getDownloadManager();
		if (manager == null)
			return;
		if (!managers.contains(manager))
		{
			managers.add(manager);
			manager.addRateLimiter(upload_limiter, true);
			manager.addRateLimiter(download_limiter, false);
			category_listeners.dispatch(1, manager);
		}
	}

	public void removeManager(DownloadManagerState manager_state)
	{
		if (manager_state.getCategory() == this)
		{
			manager_state.setCategory(null);
			return;
		}
		DownloadManager manager = manager_state.getDownloadManager();
		if (manager == null)
			return;
		if (managers.contains(manager) || type != 0)
		{
			managers.remove(manager);
			manager.removeRateLimiter(upload_limiter, true);
			manager.removeRateLimiter(download_limiter, false);
			category_listeners.dispatch(2, manager);
		}
	}

	public void setDownloadSpeed(int speed)
	{
		if (download_speed != speed)
		{
			download_speed = speed;
			CategoryManagerImpl.getInstance().saveCategories();
		}
	}

	public int getDownloadSpeed()
	{
		return download_speed;
	}

	public void setUploadSpeed(int speed)
	{
		if (upload_speed != speed)
		{
			upload_speed = speed;
			CategoryManagerImpl.getInstance().saveCategories();
		}
	}

	public int getUploadSpeed()
	{
		return upload_speed;
	}

	public int compareTo(Object b)
	{
		boolean aTypeIsUser = type == 0;
		boolean bTypeIsUser = ((Category)b).getType() == 0;
		if (aTypeIsUser == bTypeIsUser)
			return sName.compareToIgnoreCase(((Category)b).getName());
		return !aTypeIsUser ? -1 : 1;
	}



}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -