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

📄 updateautodownloader.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:   UpdateAutoDownloader.java

package org.gudy.azureus2.ui.swt.update;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import org.gudy.azureus2.core3.util.AEThread;
import org.gudy.azureus2.plugins.update.Update;
import org.gudy.azureus2.plugins.utils.resourcedownloader.*;

public class UpdateAutoDownloader
	implements ResourceDownloaderListener
{
	public static interface cbCompletion
	{

		public abstract void allUpdatesComplete(boolean flag, boolean flag1);
	}


	private final Update updates[];
	private ArrayList downloaders;
	private Iterator iterDownloaders;
	private final cbCompletion completionCallback;

	public UpdateAutoDownloader(Update updates[], cbCompletion completionCallback)
	{
		this.updates = updates;
		this.completionCallback = completionCallback;
		downloaders = new ArrayList();
		start();
	}

	private void start()
	{
		for (int i = 0; i < updates.length; i++)
		{
			Update update = updates[i];
			ResourceDownloader rds[] = update.getDownloaders();
			for (int j = 0; j < rds.length; j++)
			{
				ResourceDownloader rd = rds[j];
				downloaders.add(rd);
			}

		}

		iterDownloaders = downloaders.iterator();
		nextUpdate();
	}

	private boolean nextUpdate()
	{
		if (iterDownloaders.hasNext())
		{
			ResourceDownloader downloader = (ResourceDownloader)iterDownloaders.next();
			downloader.addListener(this);
			downloader.asyncDownload();
			return true;
		} else
		{
			return false;
		}
	}

	private void allDownloadsComplete()
	{
		boolean bRequiresRestart = false;
		boolean bHadMandatoryUpdates = false;
		for (int i = 0; i < updates.length; i++)
		{
			Update update = updates[i];
			if (update.getDownloaders().length <= 0)
				continue;
			if (update.getRestartRequired() != 1)
				bRequiresRestart = true;
			if (update.isMandatory())
				bHadMandatoryUpdates = true;
		}

		completionCallback.allUpdatesComplete(bRequiresRestart, bHadMandatoryUpdates);
	}

	public boolean completed(ResourceDownloader downloader, InputStream data)
	{
		downloader.removeListener(this);
		if (!nextUpdate())
		{
			AEThread thread = new AEThread("AllDownloadsComplete", true) {

				final UpdateAutoDownloader this$0;

				public void runSupport()
				{
					allDownloadsComplete();
				}

			
			{
				this$0 = UpdateAutoDownloader.this;
				super(x0, x1);
			}
			};
			thread.start();
		}
		return true;
	}

	public void failed(ResourceDownloader downloader, ResourceDownloaderException e)
	{
		downloader.removeListener(this);
		iterDownloaders.remove();
		nextUpdate();
	}

	public void reportActivity(ResourceDownloader resourcedownloader, String s)
	{
	}

	public void reportAmountComplete(ResourceDownloader resourcedownloader, long l)
	{
	}

	public void reportPercentComplete(ResourceDownloader resourcedownloader, int i)
	{
	}

}

⌨️ 快捷键说明

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