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

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

?? factoryset.java

?? struts的源代碼
?? JAVA
字號:
/*
 * $Id: FactorySet.java 54929 2004-10-16 16:38:42Z germuska $ 
 *
 * Copyright 1999-2004 The Apache Software Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package org.apache.struts.tiles.xmlDefinition;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;

import org.apache.struts.tiles.ComponentDefinition;
import org.apache.struts.tiles.ComponentDefinitionsFactory;
import org.apache.struts.tiles.DefinitionsFactoryException;
import org.apache.struts.tiles.FactoryNotFoundException;
import org.apache.struts.tiles.NoSuchDefinitionException;

/**
 * Component Definitions factory.
 * This factory contains several factories identified by a key. The
 * getDefinition() method first looks for the factory key, retrieves or creates this
 * factory and then calls its getDefinition().
 */
public abstract class FactorySet implements ComponentDefinitionsFactory
{

    /** Loaded factories */
  protected Map factories=null;

  /**
   * Extract key that will be used to get the sub factory.
   * @param name Name of requested definition.
   * @param request Current servlet request.
   * @param servletContext Current servlet context.
   * @return Object.
   */
  abstract protected Object getDefinitionsFactoryKey(String name, ServletRequest request, ServletContext servletContext);

  /**
   * Get default factory.
   * @return Default factory.
   */
  abstract protected DefinitionsFactory getDefaultFactory();

  /**
   * Get a factory by its key.
   * If key is <code>null</code>, return defaultFactory.
   * Search in loaded factories. If not found, create factory and store return value in
   * loaded factories.
   * @param key Key of requested definition.
   * @param request Current servlet request.
   * @param servletContext Current servlet context.
   * @throws DefinitionsFactoryException If an error occur while creating factory.
   */
  protected DefinitionsFactory getFactory(Object key, ServletRequest request, ServletContext servletContext)
    throws DefinitionsFactoryException
  {
  if(key == null )
    return getDefaultFactory();

  Object factory = factories.get( key );
  if( factory == null )
    {
      // synchronize creation to avoid double creation by separate threads.
      // Also, check if factory hasn't been created while waiting for synchronized
      // section.
    synchronized(factories)
      {
      factory = factories.get( key );
      if( factory == null )
        {
        factory = createFactory( key, request, servletContext);
        factories.put( key, factory );
        } // end if
      } // end synchronized
    } // end if
  return (DefinitionsFactory)factory;
  }

  /**
   * Get a definition by its name.
   *
   * @param name Name of requested definition.
   * @param request Current servlet request.
   * @param servletContext Current servlet context.
   * @throws NoSuchDefinitionException No definition found for specified name
   * @throws DefinitionsFactoryException General exception
   */
  public ComponentDefinition getDefinition(String name, ServletRequest request, ServletContext servletContext)
    throws NoSuchDefinitionException, DefinitionsFactoryException
  {
  if( factories == null )
    throw new FactoryNotFoundException( "No definitions factory defined" );

  Object key = getDefinitionsFactoryKey( name, request, servletContext);
  DefinitionsFactory factory = getFactory( key, request, servletContext);
  return factory.getDefinition( name, request, servletContext );
  }

  /**
   * Create a factory for specified key.
   * This method is called by getFactory() when the requested factory doesn't already exist.
   * Must return a factory, or a default one.
   * Real implementation needs to provide this method.
   * @param key Key of requested definition.
   * @param request Current servlet request.
   * @param servletContext Current servlet context
   * @throws DefinitionsFactoryException If an error occur while creating factory.
   */
  abstract protected DefinitionsFactory createFactory(Object key, ServletRequest request, ServletContext servletContext)
          throws DefinitionsFactoryException;

  /**
   * Init factory set.
   * @param servletContext Current servlet context
   * @param properties properties used to initialized factory set;
   */
  abstract public void initFactory(ServletContext servletContext, Map properties)
    throws DefinitionsFactoryException;

  /**
   * Constructor.
   */
  public FactorySet()
  {
  factories = new HashMap();
  }

    /**
     * Return String representation.
     * @return String representation.
     */
  public String toString()
    {
    Iterator i = factories.values().iterator();
    StringBuffer buff = new StringBuffer( "all FactorySet's factory : \n" );
    while( i.hasNext() )
      {
      buff.append( i.next().toString() ).append("\n");
      }
    return buff.toString();
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91性感美女视频| 中文字幕综合网| 国产成人av一区二区| 国产精品久久久久影院| 色先锋资源久久综合| 免费xxxx性欧美18vr| 日本一区二区成人在线| 日韩丝袜美女视频| 欧美色视频在线观看| 久久色在线视频| 天天操天天干天天综合网| 蜜臀va亚洲va欧美va天堂| 老司机免费视频一区二区| 精品国产乱码久久久久久影片| 秋霞av亚洲一区二区三| 精品一区二区av| 日韩精品一区二区在线观看| 国产真实精品久久二三区| 日韩欧美国产三级| 激情五月播播久久久精品| 国产精品美女久久久久久| 国产一区二区三区最好精华液| 久久久久久久久久久久久女国产乱 | 亚洲激情六月丁香| 色综合久久中文综合久久牛| 亚洲男人电影天堂| 3d动漫精品啪啪一区二区竹菊| 日本欧美一区二区| 日本一区二区三区电影| 不卡电影免费在线播放一区| 国产乱码精品一区二区三| 国产欧美日韩不卡免费| 在线视频一区二区免费| 久久综合成人精品亚洲另类欧美 | 国产黄人亚洲片| 99久久伊人网影院| 成人永久看片免费视频天堂| 国产专区欧美精品| 久久青草国产手机看片福利盒子| 亚洲国产cao| 日韩视频在线你懂得| 国产成人精品免费视频网站| 日本aⅴ亚洲精品中文乱码| 日产欧产美韩系列久久99| 国产福利不卡视频| 国产精品九色蝌蚪自拍| 欧美日韩美女一区二区| 精品视频免费在线| 欧美在线免费播放| 欧美日韩精品三区| 日韩欧美在线一区二区三区| 欧美一区二区三区爱爱| 欧美xxx久久| 国产伦精品一区二区三区在线观看| 欧美激情一二三区| www亚洲一区| 欧美大片在线观看一区| 3d动漫精品啪啪| 在线观看av不卡| 国产成人亚洲综合a∨婷婷| 人人爽香蕉精品| 日本91福利区| 午夜精品久久久久影视| 一区二区在线观看免费视频播放| 综合网在线视频| 亚洲日本va午夜在线影院| 国产精品不卡一区| 亚洲三级小视频| 亚洲综合免费观看高清在线观看| 亚洲日本丝袜连裤袜办公室| 国产精品入口麻豆九色| 中文字幕一区二区三区四区 | 亚洲综合偷拍欧美一区色| 国产精品成人在线观看| 亚洲午夜在线视频| 在线观看视频一区二区欧美日韩| 成人h动漫精品一区二区| 91蜜桃传媒精品久久久一区二区| 久久电影国产免费久久电影| 亚洲一区二区三区激情| 天天色图综合网| 日韩高清一级片| 日韩欧美一级二级三级| 国产最新精品精品你懂的| 色婷婷精品大视频在线蜜桃视频| 91啪在线观看| 日韩精品中午字幕| 亚洲人成7777| 精品一区二区影视| 99久久精品国产毛片| 6080国产精品一区二区| 国产精品欧美一区喷水| 午夜欧美一区二区三区在线播放| 大美女一区二区三区| 欧美在线免费观看视频| 国产日韩欧美精品电影三级在线| 一区二区三区在线观看国产| 狠狠色狠狠色综合| 在线免费视频一区二区| 国产亚洲女人久久久久毛片| 洋洋成人永久网站入口| 成人一区二区视频| 日韩免费看的电影| 亚洲成av人在线观看| 99热国产精品| 中文字幕在线一区免费| 国产在线视频一区二区三区| 欧美日韩亚洲综合在线| 亚洲综合在线五月| 91捆绑美女网站| 亚洲欧洲av色图| www.亚洲人| 国产精品欧美一区喷水| 九色porny丨国产精品| 日韩一级大片在线| 日韩精品久久理论片| 欧美成人一区二区| 视频一区二区三区中文字幕| 久久久久88色偷偷免费 | 欧美一a一片一级一片| 久久日韩粉嫩一区二区三区| 亚洲视频电影在线| 国产成人精品一区二| 精品久久久久久久人人人人传媒 | 久久99久久99| www.欧美日韩| 久久亚洲欧美国产精品乐播| 日日夜夜一区二区| 欧美日韩一区二区三区高清| 亚洲精品久久嫩草网站秘色| 成人avav在线| 亚洲欧洲日韩在线| 成人av在线播放网站| 91精品国产91综合久久蜜臀| 国产在线一区二区综合免费视频| 精品国产三级a在线观看| 成人99免费视频| 亚洲电影一级片| 久久精品亚洲一区二区三区浴池| 国产成人激情av| 激情偷乱视频一区二区三区| 成人欧美一区二区三区在线播放| 91热门视频在线观看| 九九精品视频在线看| 中文字幕欧美三区| 欧美自拍丝袜亚洲| 韩国欧美一区二区| 亚洲成人777| 17c精品麻豆一区二区免费| 欧美三级电影精品| 成人教育av在线| 青草国产精品久久久久久| 国产精品热久久久久夜色精品三区| 91精品1区2区| 不卡高清视频专区| 国产成人免费在线观看| 亚洲一区二区四区蜜桃| 国产精品视频看| 日韩精品影音先锋| 久久综合色天天久久综合图片| 91丨porny丨户外露出| 色域天天综合网| 9i看片成人免费高清| 欧美电影免费观看高清完整版在线观看| 91网站在线观看视频| 激情五月激情综合网| 一区二区三区波多野结衣在线观看| 亚洲午夜精品17c| 欧美亚洲愉拍一区二区| 国产精品免费免费| 午夜成人免费视频| 欧美精品一区视频| 成人免费三级在线| 亚洲国产视频a| 久久一日本道色综合| 99精品偷自拍| 麻豆精品新av中文字幕| 国产精品久久久久久户外露出| 欧美在线视频全部完| 国产一区二区三区在线观看免费视频| 国产精品久久久久永久免费观看 | 国产一区二区三区久久悠悠色av| 日本亚洲欧美天堂免费| 久久精品99国产精品日本| 午夜成人免费视频| 精品午夜久久福利影院| 国产99久久久精品| 日韩视频123| 亚洲精品一区二区三区福利| 欧美精品一区二区三区在线| 国产日韩欧美精品一区| 国产精品女主播在线观看| 亚洲一二三四久久| 久99久精品视频免费观看| 日韩一区二区三| jizz一区二区| 五月天精品一区二区三区| 亚洲综合一区二区三区| 精品嫩草影院久久| 欧美人与性动xxxx|