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

📄 sharedtemplatepackagesregistry.java

📁 java 写的一个新闻发布系统
💻 JAVA
字号:
////                                   ____.//                       __/\ ______|    |__/\.     _______//            __   .____|    |       \   |    +----+       \//    _______|  /--|    |    |    -   \  _    |    :    -   \_________//   \\______: :---|    :    :           |    :    |         \________>//           |__\---\_____________:______:    :____|____:_____\//                                      /_____|////                 . . . i n   j a h i a   w e   t r u s t . . .//////  SharedTemplatePackagesRegistry//  NK      26.09.2001//package org.jahia.registries;import java.util.*;                                   // HashTableimport java.io.*;import org.jahia.utils.*;                         // JahiaConsoleimport org.jahia.utils.zip.*;import org.jahia.services.templates_deployer.*;import org.jahia.data.templates.*;import org.jahia.exceptions.JahiaException;/** * Registry of shared template packages ( package located in the shared template folder ) * * @author Khue ng * @version 1.0 */public class SharedTemplatePackagesRegistry {    private static final String CLASS_NAME = "SharedTemplatePackagesRegistry";    private static  SharedTemplatePackagesRegistry    mInstance   = null;    /**     * @associates JahiaTemplatesPackage      */    private         Hashtable 	theRegistry;	private         Hashtable   tmplPackageNames;    /**     * @associates String      */	private         Hashtable   tmplPackageThumbnails;    /**     * @associates String      */	private         Hashtable   tmplPackageDescrs;	private 		int	count = 0;    private static boolean isLoaded = false;    private String sharedTemplateFolder = null;    private String templatePreviewFolder = null;    public static final String TEMPLATES_PREVIEW_FOLDER = "templates_preview";	//--------------------------------------------------------------------------	/**     * constructor     */    private SharedTemplatePackagesRegistry()    {    	JahiaConsole.println( "Registry",     				"***** Starting Shared Template Packages Registry *****" );        init();    } // end constructor	//--------------------------------------------------------------------------    /***     * getInstance     *     */    public static synchronized SharedTemplatePackagesRegistry getInstance()    {    	if (mInstance == null) {        	mInstance = new SharedTemplatePackagesRegistry();        }        return mInstance;    } // end getInstance	//--------------------------------------------------------------------------    /***     * init     * called from init() method in Jahia servlet     *     */    private void init()    {    	theRegistry = new Hashtable();    	tmplPackageNames = new Hashtable();    	tmplPackageThumbnails = new Hashtable();    	tmplPackageDescrs = new Hashtable();        isLoaded = true;    } // end init	//--------------------------------------------------------------------------    /***     * init and load template package from the shared template folder     *     *  @param String sharedTemplateFolder     *  @param String templatePreviewFolder     *     */    public void init(String sharedTemplateFolder, String templatePreviewFolder)    {		init();		if ( sharedTemplateFolder != null ){			this.sharedTemplateFolder = sharedTemplateFolder;			this.templatePreviewFolder = templatePreviewFolder 											+ File.separator										  	+ TEMPLATES_PREVIEW_FOLDER;						File previewFolder = new File(this.templatePreviewFolder);			previewFolder.mkdirs();			JahiaConsole.println(CLASS_NAME+".init","Template preview folder is " + previewFolder.getAbsolutePath());			JahiaConsole.println(CLASS_NAME+".init","Shared template folder is  " + sharedTemplateFolder);						File f = new File( sharedTemplateFolder );			String filename = null;			if ( f.isDirectory() ){				File[] files = f.listFiles();				for ( int i=0 ; i<files.length ; i++){					filename = files[i].getName();					if ( filename.endsWith(".jar") ){						try {							addTemplatePackage( files[i].getAbsolutePath() );						} catch ( JahiaException je ){							JahiaConsole.println(CLASS_NAME+".init","Exception " + je.getMessage());						}					}				}				}		}    } // end init	//--------------------------------------------------------------------------    /***     * get Templates Package by its index     * @author NK     *     * @param int index     */    public JahiaTemplatesPackage getTemplatePackage( int index )    throws JahiaException    {    	return (JahiaTemplatesPackage)theRegistry.get(new Integer(index));    }	//--------------------------------------------------------------------------    /***     * get Templates Package by its file name     * @author NK     *     * @param String filename, the package's file name     */    public JahiaTemplatesPackage getTemplatePackage( String filename )    throws JahiaException    {    	if ( filename == null ){    		return null;    	}		Integer I = (Integer)tmplPackageNames.get(filename);		    	    	if ( I == null ){    		return null;    	}    	return getTemplatePackage(I.intValue());    }	//--------------------------------------------------------------------------    /***     * Add a template package, if there is already a package with same file name     * replace it.     * @author NK     *     * @param JahiaTemplatesPackage tmplPack, a templates package     */    public void addTemplatePackage( JahiaTemplatesPackage tmplPack )    throws JahiaException    {    	if ( tmplPack != null && tmplPack.getFileName() != null ){	    		Integer I = (Integer)tmplPackageNames.get(tmplPack.getFileName());    		if ( I == null ){    			count++;    			tmplPack.setID(count);    			theRegistry.put(new Integer(count),tmplPack);    		} else {    			// replace    			theRegistry.put(I,tmplPack);			}    									// extract the thumbnail img			extractThumbnailImg(tmplPack);			extractDescrFile(tmplPack);						JahiaConsole.println(CLASS_NAME+".addTemplatesPackage","Package name=" + tmplPack.getName());    	}    }	//--------------------------------------------------------------------------    /***     * Add a template package     * @author NK     *     * @param String filePath, the full path to a template jar file     */    public void addTemplatePackage( String filePath )    throws JahiaException    {    	JahiaTemplatesPackageHandler ph = new JahiaTemplatesPackageHandler(filePath);   		addTemplatePackage(ph.getPackage());   		ph.closeArchiveFile();   		ph = null;    }	//--------------------------------------------------------------------------    /***     * remove a templates package by its file name     *     * @author NK     *     * @param String filename     */    public void removeTemplatePackage( String filename )    throws JahiaException    {    	Integer I = getIndex(filename);    	if ( I == null ){    		return;    	}    	theRegistry.remove(I);    	tmplPackageNames.remove(filename);    	tmplPackageThumbnails.remove(filename);    	tmplPackageDescrs.remove(filename);    }	//--------------------------------------------------------------------------   	/**     * Return the list of template packages     *     * @author NK     *     */   	public Enumeration getAllTemplatePackages(){    	return theRegistry.elements();    }	//--------------------------------------------------------------------------   	/**     * Return the thumbnail image file for a gived template package     *     * @author NK     * @param String filename, the filename of the template package     */   	public String getTemplatePackageThumbnail(String filename){    	return (String)tmplPackageThumbnails.get(filename);    }	//--------------------------------------------------------------------------   	/**     * Return the index attached to a template package filename     *     * @author NK     *     * @param (String) the package filename     * @return (Integer) the index     */   	private Integer getIndex(String filename){    	if ( filename == null ){    		return null;    	}return (Integer)tmplPackageNames.get(filename);    }	//--------------------------------------------------------------------------   	/**     * Return the number of package in the registry     *     * @author NK     *     * @return (Integer) the number of package in the registry     */   	public int getNbPackage(){    	return theRegistry.size();    }	//--------------------------------------------------------------------------   	/**     * Extract the thumbnail image     *     * @author NK     *     * @param (JahiaTemplatesPackage) the template package     */	private void extractThumbnailImg(JahiaTemplatesPackage tmplPack){		if ( tmplPack == null ){			return;		}		String thumbnail = tmplPack.getThumbnail();		String thumbnailExt = "";		if ( ( thumbnail!= null) && (thumbnail.indexOf(".") !=-1) ){			thumbnailExt = thumbnail.substring(thumbnail.indexOf("."),thumbnail.length());					// extract the thumbnail img			File f = new File(tmplPack.getFilePath());						if ( f.isFile() ){						JahiaArchiveFileHandler zip = null;				try { 					zip = new JahiaArchiveFileHandler(f.getAbsolutePath());					if ( zip != null && zip.entryExists(tmplPack.getThumbnail()) ){						StringBuffer filename = 								new StringBuffer(this.templatePreviewFolder);												filename.append(File.separator);						filename.append(JahiaTools.removeFileExtension(tmplPack.getFileName(),".jar"));						filename.append(thumbnailExt);						File tmpFile = zip.extractFile(tmplPack.getThumbnail());						tmpFile.renameTo(new File(filename.toString()));						File thumbFile = new File(filename.toString());						if ( thumbFile.isFile() ){							tmplPackageThumbnails.put(tmplPack.getFileName(),thumbFile.getName());						}						tmpFile = null;						thumbFile = null;					}				} catch ( JahiaException je ){					JahiaConsole.println(CLASS_NAME+".init","Exception "+ je.getMessage() );				} catch ( IOException ioe ){					JahiaConsole.println(CLASS_NAME+".init","Exception "+ ioe.getMessage() );				} finally {					zip.closeArchiveFile();				}			}		}	}	//--------------------------------------------------------------------------   	/**     * Extract the description file     *     * @author NK     *     * @param (JahiaTemplatesPackage) the template package     */	private void extractDescrFile(JahiaTemplatesPackage tmplPack){		if ( tmplPack == null ){			return;		}		// extract the thumbnail img		File f = new File(tmplPack.getFilePath());					if ( f.isFile() ){					JahiaArchiveFileHandler zip = null;			try { 				zip = new JahiaArchiveFileHandler(f.getAbsolutePath());				if ( zip != null && zip.entryExists(JahiaTemplatesPackage.DESCR_FILE) ){									StringBuffer filename = 							new StringBuffer(this.templatePreviewFolder);										filename.append(File.separator);					filename.append(JahiaTools.removeFileExtension(tmplPack.getFileName(),".jar"));					filename.append(".txt");					File tmpFile = zip.extractFile(JahiaTemplatesPackage.DESCR_FILE);					tmpFile.renameTo(new File(filename.toString()));					File descrFile = new File(filename.toString());					if ( descrFile.isFile() ){						tmplPackageDescrs.put(tmplPack.getFileName(),descrFile.getName());					}					tmpFile = null;					descrFile = null;				}			} catch ( JahiaException je ){				JahiaConsole.println(CLASS_NAME+".init","Exception "+ je.getMessage() );			} catch ( IOException ioe ){				JahiaConsole.println(CLASS_NAME+".init","Exception "+ ioe.getMessage() );			} finally {				zip.closeArchiveFile();			}		}	}	//--------------------------------------------------------------------------   	/**     * Return true is this Class is already initialized     *     * @author NK     *     * @return (boolean) isLoaded     */   	public static boolean isLoaded(){    	return isLoaded;    }}

⌨️ 快捷键说明

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