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

📄 playlistfactory.java

📁 java媒体播放器源代码
💻 JAVA
字号:
package javazoom.jlGui.playlist;

import javazoom.Util.*;
import java.lang.reflect.*;

//PlaylistFactory.
public class PlaylistFactory
{
	private static PlaylistFactory	_instance = null;
	private	Playlist				_playlistInstance = null;
	private	Config					_config = null;

	/**
	 * Constructor.
	 */
	private PlaylistFactory()
	{
		_config = Config.getInstance();
	}

	/**
	 * Returns instance of PlaylistFactory.
	 */
	public synchronized static PlaylistFactory getInstance()
	{
		if (_instance == null)
		{
			_instance = new PlaylistFactory();
		}
		return _instance;
	}

	/**
	 * Returns Playlist instantied from full qualified class name.
	 */
	public Playlist getPlaylist()
	{
		if (_playlistInstance == null)
		{
          String classname = _config.getPlaylistClassName();
          boolean interfaceFound = false;
          try
          {
            Class aClass = Class.forName(classname);
            Class superClass = aClass;
          	// Looking for Playlist interface implementation.
            while (superClass != null)
            {
            	Class[] interfaces = superClass.getInterfaces();
            	for (int i = 0; i < interfaces.length;i++)
            	{
            		if ( (interfaces[i].getName()).equals("javazoom.jlGui.playlist.Playlist") )
            		{
            		  interfaceFound = true;
            		  break;
            		}
				}
            	if (interfaceFound == true) break;
            	superClass = superClass.getSuperclass();
			}
           	if (interfaceFound == false)
           	{
           	  trace(0,""+getClass().getName(),"Error : Playlist implementation not found in "+classname+" hierarchy");
           	}
           	else
           	{
       		  Class[] argsClass = new Class[] {};
       		  Constructor c = aClass.getConstructor(argsClass);
       		  _playlistInstance = (Playlist) (c.newInstance(null));
       		  trace(0,""+getClass().getName(),classname + " loaded");
			}
          } catch (Exception e)
            {
              trace(0,""+getClass().getName(),"Error : "+classname+" : "+e.getMessage());
            }
		}
		return _playlistInstance;
	}

	/**
	 * Sends traces to Debug.
	 */
	private void trace(int level, String msg1, String msg2)
	{
		Debug dbg = Debug.getInstance();
		dbg.log(level,msg1+":"+msg2);
	}
}

⌨️ 快捷键说明

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