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

📄 loggerimpl.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:   LoggerImpl.java

package org.gudy.azureus2.pluginsimpl.local.logging;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import org.gudy.azureus2.core3.logging.ILogAlertListener;
import org.gudy.azureus2.core3.logging.LogAlert;
import org.gudy.azureus2.core3.logging.LogEvent;
import org.gudy.azureus2.core3.logging.Logger;
import org.gudy.azureus2.core3.logging.impl.FileLogging;
import org.gudy.azureus2.core3.logging.impl.FileLoggingAdapter;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.logging.FileLoggerAdapter;
import org.gudy.azureus2.plugins.logging.LogAlertListener;
import org.gudy.azureus2.plugins.logging.LoggerAlertListener;
import org.gudy.azureus2.plugins.logging.LoggerChannel;

// Referenced classes of package org.gudy.azureus2.pluginsimpl.local.logging:
//			LoggerChannelImpl

public class LoggerImpl
	implements org.gudy.azureus2.plugins.logging.Logger
{
	private class PluginFileLoggerAdapater extends FileLoggingAdapter
	{

		public FileLoggerAdapter listener;
		final LoggerImpl this$0;

		public boolean logToFile(LogEvent event, StringBuffer lineOut)
		{
			return listener.logToFile(lineOut);
		}

		public PluginFileLoggerAdapater(FileLogging fileLogging, FileLoggerAdapter listener)
		{
			this$0 = LoggerImpl.this;
			super();
			fileLogging.addListener(this);
			this.listener = listener;
		}
	}


	private PluginInterface pi;
	private List channels;
	private Map alert_listeners_map;
	private Map alert_listeners_map2;

	public LoggerImpl(PluginInterface _pi)
	{
		channels = new ArrayList();
		alert_listeners_map = new HashMap();
		alert_listeners_map2 = new HashMap();
		pi = _pi;
	}

	public PluginInterface getPluginInterface()
	{
		return pi;
	}

	public LoggerChannel getChannel(String name)
	{
		LoggerChannel channel = new LoggerChannelImpl(this, name, false, false);
		channels.add(channel);
		return channel;
	}

	public LoggerChannel getTimeStampedChannel(String name)
	{
		LoggerChannel channel = new LoggerChannelImpl(this, name, true, false);
		channels.add(channel);
		return channel;
	}

	public LoggerChannel getNullChannel(String name)
	{
		LoggerChannel channel = new LoggerChannelImpl(this, name, true, true);
		channels.add(channel);
		return channel;
	}

	public LoggerChannel[] getChannels()
	{
		LoggerChannel res[] = new LoggerChannel[channels.size()];
		channels.toArray(res);
		return res;
	}

	public void addAlertListener(final LoggerAlertListener listener)
	{
		ILogAlertListener lg_listener = new ILogAlertListener() {

			final LoggerAlertListener val$listener;
			final LoggerImpl this$0;

			public void alertRaised(LogAlert alert)
			{
				if (alert.err == null)
				{
					int type;
					if (alert.entryType == 0)
						type = 1;
					else
					if (alert.entryType == 1)
						type = 2;
					else
						type = 3;
					listener.alertLogged(type, alert.text, alert.repeatable);
				} else
				{
					listener.alertLogged(alert.text, alert.err, alert.repeatable);
				}
			}

			
			{
				this$0 = LoggerImpl.this;
				listener = loggeralertlistener;
				super();
			}
		};
		alert_listeners_map.put(listener, lg_listener);
		Logger.addListener(lg_listener);
	}

	public void removeAlertListener(LoggerAlertListener listener)
	{
		ILogAlertListener lg_listener = (ILogAlertListener)alert_listeners_map.remove(listener);
		if (lg_listener != null)
			Logger.removeListener(lg_listener);
	}

	public void addAlertListener(final LogAlertListener listener)
	{
		ILogAlertListener lg_listener = new ILogAlertListener() {

			private HashSet set;
			final LogAlertListener val$listener;
			final LoggerImpl this$0;

			public void alertRaised(LogAlert alert)
			{
				if (!alert.repeatable)
				{
					if (set.contains(alert.text))
						return;
					set.add(alert.text);
				}
				listener.alertRaised(alert);
			}

			
			{
				this$0 = LoggerImpl.this;
				listener = logalertlistener;
				super();
				set = new HashSet();
			}
		};
		alert_listeners_map2.put(listener, lg_listener);
		Logger.addListener(lg_listener);
	}

	public void removeAlertListener(LogAlertListener listener)
	{
		ILogAlertListener lg_listener = (ILogAlertListener)alert_listeners_map2.remove(listener);
		if (lg_listener != null)
			Logger.removeListener(lg_listener);
	}

	public void addFileLoggingListener(FileLoggerAdapter listener)
	{
		FileLogging fileLogging = Logger.getFileLoggingInstance();
		if (fileLogging == null)
		{
			return;
		} else
		{
			fileLogging.addListener(new PluginFileLoggerAdapater(fileLogging, listener));
			return;
		}
	}

	public void removeFileLoggingListener(FileLoggerAdapter listener)
	{
		FileLogging fileLogging = Logger.getFileLoggingInstance();
		if (fileLogging == null)
			return;
		Object listeners[] = fileLogging.getListeners().toArray();
		for (int i = 0; i < listeners.length; i++)
		{
			if (!(listeners[i] instanceof PluginFileLoggerAdapater))
				continue;
			PluginFileLoggerAdapater l = (PluginFileLoggerAdapater)listeners[i];
			if (l.listener == listener)
				fileLogging.removeListener(l);
		}

	}
}

⌨️ 快捷键说明

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