亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? acronymsplugin.java

?? 這個weblogging 設計得比較精巧
?? JAVA
字號:
/* * Filename: AcronymsPlugin.java *  * Created on 22-Jun-04 */package org.roller.presentation.velocity.plugins.acronyms;import org.apache.commons.lang.StringEscapeUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.velocity.context.Context;import org.roller.RollerException;import org.roller.model.RollerFactory;import org.roller.model.UserManager;import org.roller.pojos.PageData;import org.roller.pojos.WeblogEntryData;import org.roller.pojos.WebsiteData;import org.roller.presentation.RollerRequest;import org.roller.presentation.velocity.PagePlugin;import java.util.Iterator;import java.util.Properties;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Adds full text to pre-defined acronyms. *  * Example: HTML would become &lt;acronym title="Hyper Text Markup Language"&gt;HTML&lt;/acronym&gt;  *  * @author <a href="mailto:molen@mail.com">Jaap van der Molen</a> * @version $Revision: 1.3 $ */public class AcronymsPlugin implements PagePlugin{	/**	 * Logger	 */	private static final Log mLogger = LogFactory.getLog(AcronymsPlugin.class);	/**	 * Name of this Plugin.	 */	protected String name = "Acronyms";    protected String description = "Expands acronyms defined in _acronym page. " +        "Example: definition 'HTML=Hyper Text Markup Language' " +        "becomes &lt;acronym title='Hyper Text Markup Language'&gt;HTML&lt;/acronym&gt;. " +        "You must create an " +        "<a href='page.do?method=editPages&rmik=tabbedmenu.website.pages'>" +        "_acronym page</a> to use Acronyms.";    	/**	 * Constructor	 */	public AcronymsPlugin()	{		super();        mLogger.debug("AcronymsPlugin instantiated.");	}	/**	 * @see org.roller.presentation.velocity.PagePlugin#init(org.roller.presentation.RollerRequest, org.apache.velocity.context.Context)	 */	public void init(RollerRequest rreq, Context ctx) throws RollerException	{		if (mLogger.isDebugEnabled()) {			mLogger.debug("init( rreq = "+rreq+", ctx = "+ctx+" )");		}	}        /**     * Look for any _acronyms Page and parse it into Properties.     * @param website     * @return     * @throws RollerException     */    private Properties loadAcronyms(WebsiteData website)     {        Properties acronyms = new Properties();        try        {            UserManager userMgr = RollerFactory.getRoller().getUserManager();            PageData acronymsPage = userMgr.getPageByName(                                        website, "_acronyms");            if (acronymsPage != null)             {                acronyms = parseAcronymPage(acronymsPage, acronyms);            }        }        catch (RollerException e)        {            // not much we can do about it            mLogger.warn(e);        }        return acronyms;    }    /**	 * @see org.roller.presentation.velocity.PagePlugin#render(org.roller.pojos.WeblogEntryData, boolean)	 */	public String render(WeblogEntryData entry, boolean skipFlag)	{        String text = entry.getText();        		if (mLogger.isDebugEnabled()) {			mLogger.debug("render( entry = "+entry.getId()+", skipFlag = "+skipFlag+" )");		}        /*         * Get acronyms Properties.         */        Properties acronyms = loadAcronyms(entry.getWebsite());        mLogger.debug("acronyms.size()=" + acronyms.size());        if (acronyms.size() == 0)        {            return text;        }        /*         * Compile the user's acronyms into RegEx patterns.         */        Pattern[] acronymPatterns = new Pattern[acronyms.size()];        String[] acronymTags = new String[acronyms.size()];        int count = 0;        for (Iterator iter = acronyms.keySet().iterator(); iter.hasNext();)        {            String acronym = (String) iter.next();            acronymPatterns[count] = Pattern.compile("\\b" + acronym + "\\b");            mLogger.debug("match '" + acronym + "'");            acronymTags[count] =                "<acronym title=\""                + acronyms.getProperty(acronym)                + "\">"                + acronym                + "</acronym>";            count++;        }				// check skipper        /* I don't think this Plugin should skip. -Lance		if (skipFlag)		{			return text;		}        */                // if there are none, no work to do        if (acronymPatterns == null || acronymPatterns.length == 0) {            return text;        }        return matchAcronyms(text, acronymPatterns, acronymTags);	}	/**     * Without Website cannot lookup _acronyms page.	 * @see org.roller.presentation.velocity.PagePlugin#render(java.lang.String)	 */	public String render(String text)	{	    return text;	}	/**	 * @return this Page Plugin's name	 */	public String toString()	{		return name;	}		/**	 * Iterates through the acronym properties and replaces matching 	 * acronyms in the entry text with acronym html-tags.	 * 	 * @param text entry text	 * @param acronyms user provided set of acronyms	 * @return entry text with acronym explanations	 */	private String matchAcronyms(String text, Pattern[] acronymPatterns, String[] acronymTags)	{		if (mLogger.isDebugEnabled()) {			mLogger.debug("matchAcronyms("+text+")");		}        Matcher matcher = null;		for (int i=0; i<acronymPatterns.length; i++)		{            matcher = acronymPatterns[i].matcher(text);            text = matcher.replaceAll(acronymTags[i]);		}		return text;	}	/**	 * Parse the Template of the provided PageData and turns it	 * into a <code>Properties</code> collection.	 * 	 * @param acronymPage	 * @return acronym properties (key = acronym, value= full text), empty if Template is empty	 */	private Properties parseAcronymPage(PageData acronymPage, Properties acronyms)	{		String rawAcronyms = acronymPage.getTemplate();				if (mLogger.isDebugEnabled()) 		{			mLogger.debug("parsing _acronyms template: \n'"+rawAcronyms+"'");		}				String regex = "\n"; // end of line		String[] lines = rawAcronyms.split(regex);		if (lines != null)		{			for (int i = 0; i < lines.length; i++)			{				int index = lines[i].indexOf('=');				if (index > 0)				{					String key = lines[i].substring(0, index).trim();					String value =						lines[i].substring(index + 1, lines[i].length()).trim();					acronyms.setProperty(key, value);				}			}		}		return acronyms;	}    public String getName() { return name; }    public String getDescription() { return StringEscapeUtils.escapeJavaScript(description); }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片| 亚洲成年人网站在线观看| 99国产精品久久久久久久久久久| 亚洲精品一区二区三区影院| 国产精品妹子av| 成人手机电影网| 亚洲视频一二三区| 一本到三区不卡视频| 久久久久久久久蜜桃| 亚洲视频小说图片| 国产91清纯白嫩初高中在线观看| 欧美日韩国产电影| 亚洲在线一区二区三区| 性做久久久久久免费观看| 丁香六月综合激情| 久久久九九九九| 韩国三级在线一区| 制服丝袜在线91| 丝袜诱惑制服诱惑色一区在线观看| 9人人澡人人爽人人精品| 26uuuu精品一区二区| 麻豆精品一区二区三区| 欧美日韩不卡一区| 午夜精品福利久久久| 欧洲国内综合视频| 艳妇臀荡乳欲伦亚洲一区| 91激情在线视频| 一区二区三区影院| 91麻豆精品一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品综合视频| 久久噜噜亚洲综合| 国产精品夜夜爽| 国产精品女同互慰在线看| av网站免费线看精品| 亚洲卡通欧美制服中文| 在线视频你懂得一区| 午夜精品成人在线视频| 日韩亚洲电影在线| 国产专区综合网| 国产精品国产三级国产aⅴ入口| 粉嫩高潮美女一区二区三区| 中文子幕无线码一区tr| 99久久精品免费精品国产| 国产精品久久久久久久久免费桃花| 成人av网址在线观看| 综合婷婷亚洲小说| 欧美日韩免费不卡视频一区二区三区| 日韩电影在线观看网站| 久久综合狠狠综合久久综合88 | 在线欧美日韩精品| 亚洲国产精品久久人人爱| 欧美视频精品在线| 久久精品国产99久久6| 久久久不卡网国产精品一区| 国产91精品一区二区麻豆亚洲| 国产欧美一区二区三区鸳鸯浴| 激情五月激情综合网| 日韩免费成人网| 国产精品一区二区在线播放| 亚洲国产岛国毛片在线| av在线不卡观看免费观看| 亚洲欧美日韩久久| 欧美日本一区二区三区四区| 免费人成精品欧美精品| 亚洲精品在线观看网站| 95精品视频在线| 亚洲免费观看视频| 欧美日韩夫妻久久| 国产一区二区三区免费| 一区二区三区蜜桃| 久久免费国产精品| 欧美又粗又大又爽| 国产一区激情在线| 亚洲美女精品一区| 国产亚洲欧美在线| 欧美男人的天堂一二区| 成人性生交大片免费看视频在线 | 色国产综合视频| 久久国产乱子精品免费女| 亚洲精品日日夜夜| 久久精品一二三| 欧美美女一区二区在线观看| 成人精品在线视频观看| 麻豆成人久久精品二区三区红| 自拍偷在线精品自拍偷无码专区| 精品久久久三级丝袜| 欧美群妇大交群的观看方式| 99久久国产综合精品女不卡| 韩国成人在线视频| 日韩国产精品久久久久久亚洲| 亚洲蜜臀av乱码久久精品蜜桃| 久久理论电影网| 亚洲精品一线二线三线无人区| 欧美日韩一区二区三区不卡| 91蜜桃网址入口| 成人免费视频视频| 国产精品亚洲一区二区三区妖精| 琪琪久久久久日韩精品| 午夜视频在线观看一区二区| 亚洲精品综合在线| 国产精品福利电影一区二区三区四区| 久久久久国产精品免费免费搜索| 精品免费视频.| 精品国产区一区| 日韩精品一区二区三区中文精品| 欧美蜜桃一区二区三区| 欧美日精品一区视频| 欧美无人高清视频在线观看| 91在线观看视频| 99精品欧美一区二区三区小说| 成人精品免费视频| 丁香六月综合激情| av亚洲精华国产精华精华| 成人网在线播放| 不卡的电影网站| 99久久久精品免费观看国产蜜| 成人a区在线观看| 色综合久久精品| 在线免费观看日本一区| 欧美日韩国产综合一区二区| 91国在线观看| 不卡高清视频专区| 色吧成人激情小说| 欧美日韩国产小视频| 日韩欧美123| 久久这里只有精品视频网| 日韩欧美国产小视频| 日韩女同互慰一区二区| 日韩一区二区高清| 在线视频综合导航| 日本韩国欧美一区二区三区| 色哟哟一区二区在线观看| 色综合久久66| 欧美日韩亚洲综合在线| 欧美剧情片在线观看| 欧美一区二区三区在线| 久久久五月婷婷| 亚洲素人一区二区| 五月激情综合婷婷| 成人永久免费视频| 在线观看一区日韩| 精品国产伦理网| 中文字幕日韩欧美一区二区三区| 亚洲网友自拍偷拍| 国产精品亚洲成人| 欧美性极品少妇| 久久久精品天堂| 亚洲永久精品国产| 国产成人精品在线看| 欧美亚洲动漫精品| 久久综合色综合88| 亚洲综合视频在线观看| 国产麻豆精品在线| 欧美日韩国产系列| 国产精品色一区二区三区| 石原莉奈一区二区三区在线观看| 国产69精品久久久久毛片| 欧美日高清视频| 中文字幕在线视频一区| 免费看黄色91| 欧美午夜精品一区二区蜜桃| 久久嫩草精品久久久久| 偷窥少妇高潮呻吟av久久免费| 国产91丝袜在线播放0| 欧美一区二区观看视频| 亚洲精品乱码久久久久久黑人 | 在线中文字幕不卡| 国产三级精品在线| 日本美女视频一区二区| 在线免费观看日韩欧美| 国产精品国产精品国产专区不蜜| 奇米四色…亚洲| 欧美日韩三级一区| 亚洲欧洲成人自拍| 国产精品一区二区在线播放| 日韩欧美中文字幕一区| 一区二区视频在线看| 成人性生交大片免费| 久久免费视频色| 久久aⅴ国产欧美74aaa| 欧美日韩国产高清一区二区| 亚洲激情五月婷婷| 97aⅴ精品视频一二三区| 国产视频一区二区三区在线观看| 久久精品国产精品青草| 日韩美女主播在线视频一区二区三区| 亚洲成a天堂v人片| 欧美日韩国产首页| 石原莉奈一区二区三区在线观看| 在线视频国内自拍亚洲视频| 亚洲日本丝袜连裤袜办公室| 成人aaaa免费全部观看| 欧美高清在线视频| 成人福利视频网站| 国产精品护士白丝一区av| 91在线你懂得| 亚洲精品日韩专区silk| 色久综合一二码| 亚洲电影视频在线|