Package org.g4studio.core.resource.impl

Source Code of org.g4studio.core.resource.impl.DefaultLoaderMapping

package org.g4studio.core.resource.impl;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.g4studio.core.resource.ResourceException;
import org.g4studio.core.resource.ResourceLoader;
import org.g4studio.core.resource.loader.ClasspathResourceLoader;
import org.g4studio.core.resource.loader.DynamicResourceLoader;
import org.g4studio.core.resource.loader.FileResourceLoader;
import org.g4studio.core.resource.loader.MD5ClasspathResourceLoader;
import org.g4studio.core.resource.support.LoaderMapping;

/**
* DefaultLoaderMapping
*
* @author HuangYunHui|XiongChun
* @since 2009-05-8
*/
public class DefaultLoaderMapping implements LoaderMapping {

  private final Log logger = LogFactory.getLog(this.getClass());
  private final static FileResourceLoader file = new FileResourceLoader();
  private final static ClasspathResourceLoader classpath = new ClasspathResourceLoader();
  private final static MD5ClasspathResourceLoader md5classpath = new MD5ClasspathResourceLoader();
  private final static DynamicResourceLoader dynamic = new DynamicResourceLoader();

  private static Map loaders = new HashMap();

  static {
    loaders.put("file", file);
    loaders.put("classpath", classpath);
    loaders.put("md5classpath", md5classpath);
    loaders.put("dynamic", dynamic);
  }

  public void put(String pLoaderName, ResourceLoader pLoader) {
    loaders.put(pLoaderName, pLoader);
  }

  public ResourceLoader mapping(String pName) throws ResourceException {
    if (pName == null) {
      throw new NullPointerException("资源Loader名称不能为空null");
    }
    logger.debug("获取名字为:" + pName + "的资源Loader.");
    String handlerName = pName.toLowerCase();
    if (loaders.containsKey(handlerName) == false) {
      throw new ResourceException("不存在名为:" + pName + "的资源Loader");
    }
    ResourceLoader result = (ResourceLoader) loaders.get(handlerName);
    logger.debug("获取到名字为:" + pName + "的资源Loader.");
    return result;
  }

}
TOP

Related Classes of org.g4studio.core.resource.impl.DefaultLoaderMapping

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.