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

📄 resourcedownloaderbaseimpl.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:   ResourceDownloaderBaseImpl.java

package org.gudy.azureus2.pluginsimpl.local.utils.resourcedownloader;

import java.io.InputStream;
import java.util.*;
import org.gudy.azureus2.core3.util.AEMonitor;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.plugins.utils.resourcedownloader.*;

public abstract class ResourceDownloaderBaseImpl
	implements ResourceDownloader
{

	private static final String PR_PROPERTIES_SET = "!!!! properties set !!!!";
	private List listeners;
	private boolean result_informed;
	private Object result_informed_data;
	private ResourceDownloaderBaseImpl parent;
	private List children;
	private boolean download_cancelled;
	private Map lc_key_properties;
	protected AEMonitor this_mon;

	protected ResourceDownloaderBaseImpl(ResourceDownloaderBaseImpl _parent)
	{
		listeners = new ArrayList();
		children = new ArrayList();
		lc_key_properties = new HashMap();
		this_mon = new AEMonitor("ResourceDownloader");
		parent = _parent;
		if (parent != null)
			parent.addChild(this);
	}

	public abstract ResourceDownloaderBaseImpl getClone(ResourceDownloaderBaseImpl resourcedownloaderbaseimpl);

	protected abstract void setSize(long l);

	public Object getProperty(String name)
		throws ResourceDownloaderException
	{
		Object res = getPropertySupport(name);
		if (res != null || getPropertySupport("!!!! properties set !!!!") != null)
		{
			return res;
		} else
		{
			getSize();
			return getPropertySupport(name);
		}
	}

	protected Object getPropertySupport(String name)
	{
		return lc_key_properties.get(name.toLowerCase());
	}

	protected Map getLCKeyProperties()
	{
		return lc_key_properties;
	}

	protected String getStringPropertySupport(String name)
	{
		Object obj = lc_key_properties.get(name.toLowerCase());
		if (obj instanceof String)
			return (String)obj;
		else
			return null;
	}

	protected void setPropertiesSet()
		throws ResourceDownloaderException
	{
		setProperty("!!!! properties set !!!!", "true");
	}

	protected void setPropertySupport(String name, Object value)
	{
		boolean already_set = lc_key_properties.put(name.toLowerCase(), value) == value;
		if (parent != null && !already_set)
			try
			{
				parent.setProperty(name, value);
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}
	}

	protected void setProperties(ResourceDownloaderBaseImpl other)
	{
		Map p = other.lc_key_properties;
		for (Iterator it = p.keySet().iterator(); it.hasNext();)
		{
			String key = (String)it.next();
			try
			{
				setProperty(key, p.get(key));
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}
		}

	}

	protected void setParent(ResourceDownloader _parent)
	{
		ResourceDownloaderBaseImpl old_parent = parent;
		parent = (ResourceDownloaderBaseImpl)_parent;
		if (old_parent != null)
			old_parent.removeChild(this);
		if (parent != null)
			parent.addChild(this);
	}

	protected ResourceDownloaderBaseImpl getParent()
	{
		return parent;
	}

	protected void addChild(ResourceDownloaderBaseImpl kid)
	{
		children.add(kid);
	}

	protected void removeChild(ResourceDownloaderBaseImpl kid)
	{
		children.remove(kid);
	}

	protected List getChildren()
	{
		return children;
	}

	protected String getLogIndent()
	{
		String indent = "";
		for (ResourceDownloaderBaseImpl pos = parent; pos != null; pos = pos.getParent())
			indent = (new StringBuilder()).append(indent).append("  ").toString();

		return indent;
	}

	protected void addReportListener(ResourceDownloader rd)
	{
		rd.addListener(new ResourceDownloaderAdapter() {

			final ResourceDownloaderBaseImpl this$0;

			public void reportActivity(ResourceDownloader downloader, String activity)
			{
				informActivity(activity);
			}

			public void failed(ResourceDownloader downloader, ResourceDownloaderException e)
			{
				informActivity((new StringBuilder()).append(downloader.getName()).append(":").append(e.getMessage()).toString());
			}

			
			{
				this$0 = ResourceDownloaderBaseImpl.this;
				super();
			}
		});
	}

	protected void informPercentDone(int percentage)
	{
		for (int i = 0; i < listeners.size(); i++)
			try
			{
				((ResourceDownloaderListener)listeners.get(i)).reportPercentComplete(this, percentage);
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}

	}

	protected void informAmountComplete(long amount)
	{
		for (int i = 0; i < listeners.size(); i++)
			try
			{
				((ResourceDownloaderListener)listeners.get(i)).reportAmountComplete(this, amount);
			}
			catch (NoSuchMethodError e) { }
			catch (AbstractMethodError e) { }
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}

	}

	public void reportActivity(String str)
	{
		informActivity(str);
	}

	protected void informActivity(String activity)
	{
		for (int i = 0; i < listeners.size(); i++)
			try
			{
				((ResourceDownloaderListener)listeners.get(i)).reportActivity(this, activity);
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}

	}

	protected boolean informComplete(InputStream is)
	{
		int i;
		if (result_informed)
			break MISSING_BLOCK_LABEL_73;
		i = 0;
_L2:
		if (i >= listeners.size())
			break; /* Loop/switch isn't completed */
		if (!((ResourceDownloaderListener)listeners.get(i)).completed(this, is))
			return false;
		break MISSING_BLOCK_LABEL_57;
		Throwable e;
		e;
		Debug.printStackTrace(e);
		return false;
		i++;
		if (true) goto _L2; else goto _L1
_L1:
		result_informed = true;
		result_informed_data = is;
		return true;
	}

	protected void informFailed(ResourceDownloaderException e)
	{
		if (!result_informed)
		{
			result_informed = true;
			result_informed_data = e;
			for (int i = 0; i < listeners.size(); i++)
				try
				{
					((ResourceDownloaderListener)listeners.get(i)).failed(this, e);
				}
				catch (Throwable f)
				{
					Debug.printStackTrace(f);
				}

		}
	}

	public void reportActivity(ResourceDownloader downloader, String activity)
	{
		informActivity(activity);
	}

	public void reportPercentComplete(ResourceDownloader downloader, int percentage)
	{
		informPercentDone(percentage);
	}

	public void reportAmountComplete(ResourceDownloader downloader, long amount)
	{
		informAmountComplete(amount);
	}

	protected void setCancelled()
	{
		download_cancelled = true;
	}

	public boolean isCancelled()
	{
		return download_cancelled;
	}

	public void addListener(ResourceDownloaderListener l)
	{
		listeners.add(l);
		if (result_informed)
			if (result_informed_data instanceof InputStream)
				l.completed(this, (InputStream)result_informed_data);
			else
				l.failed(this, (ResourceDownloaderException)result_informed_data);
	}

	public void removeListener(ResourceDownloaderListener l)
	{
		listeners.remove(l);
	}
}

⌨️ 快捷键说明

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