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

📄 indexmanager.java

📁 JAVA在线商店带JSP的
💻 JAVA
字号:
package index;import index.*;import java.util.*;import java.io.*;import DebugLog;public class IndexManager{	protected static Hashtable indices;	protected static Hashtable loadtimes;		public static long updateInterval = 0;//seconds	static	{	    indices = new Hashtable();	    loadtimes = new Hashtable();	}		public static HTMLIndex indexForDirectory(String dir,String rel)	{		HTMLIndex retVal = null;		Object test = null;		IndexLoader loader=null;				if(dir == null) return null;				synchronized(indices)		{		    test = indices.get(dir);				    if(test == null)		    {		        loader = new IndexLoader(dir,rel,indices);		        		        indices.put(dir,loader);		        loadtimes.put(dir,new Date());  		    }  		    else if(test instanceof HTMLIndex)  		    {	            retVal = (HTMLIndex) test;  		          		        if(updateInterval>0)  		        {      		        try      		        {      		            Date now = new Date(),load;      		            long nw,ld;  		              		            load = (Date) loadtimes.get(dir);  		              		            nw = now.getTime();      		            ld = load.getTime();  		              		                if(nw > (ld+(updateInterval*1000)))      		            {      		                if(retVal.indexNeedsRebuilding())      		                {          		                //reload        		                loader = new IndexLoader(dir,rel,indices);		                		                indices.put(dir,loader);        		                loadtimes.put(dir,new Date());          		                          		                retVal = null;      		                }      		                else      		                {      		                    //update load time      		                    loadtimes.put(dir,new Date());      		                }      		            }      		        }      		        catch(Exception exp)      		        {      		            retVal = (HTMLIndex) test;      		            indices.put(dir,retVal);//just in case      		            loadtimes.put(dir,new Date());      		        }  		        }  		    }  		    //else it is the index loader working...		}		        		if(loader != null)		{		    if(loader.needsBuild())		    {		        loader.start();		    }		    else		    {		        loader.load();  		        retVal = (HTMLIndex) indices.get(dir);		    }		}    				return retVal;	}}class IndexLoader extends Thread{    protected String dir;    protected String rel;    protected Hashtable indices;    protected HTMLIndex newIndex;    protected boolean buildIfNec;        public IndexLoader(String d,String r,Hashtable holder)    {        dir = d;        rel = r;        indices = holder;        buildIfNec = false;                newIndex = new HTMLIndex(new File(dir));    }        public boolean needsBuild()    {        return newIndex.indexNeedsRebuilding();    }        public void run()    {        buildIfNec = true;        load();    }        public void load()    {        if(dir == null) return;                if(rel!=null) newIndex.setRelativePath(rel);                newIndex.loadIndex(buildIfNec);                synchronized(indices)        {            indices.put(dir,newIndex);        }    }}

⌨️ 快捷键说明

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