package org.postgresql.pljava.RePartition;

import java.util.HashMap;

/**
 * ハッシュクラスローダークラス
 */
public class HashLoader extends ClassLoader {
	/** クラスリスト格納 */
	HashMap m_classMap = new HashMap();
	
	/**
	 * 
	 * @param name		クラス名
	 * @param byteData	クラスイメージ
	 */
	public HashLoader(String name, byte[] byteData) {
		super();
		m_classMap.put(name, byteData);
	}

	/**
	 * 
	 * @param name		クラス名
	 * @param byteData	クラスイメージ
	 */
	public void setClass(String name, byte[] byteData) {
		m_classMap.put(name, byteData);
	}
	/*
	 * (非 Javadoc)
	 * 
	 * @see java.lang.ClassLoader#findClass(java.lang.String)
	 */
	protected Class findClass(String name) throws ClassNotFoundException {

		byte[] byteImg = (byte[])m_classMap.get(name);
		if(byteImg == null){
			throw new ClassNotFoundException();
		}
		
		return defineClass(name, byteImg, 0, byteImg.length);

	}
	
}
