/* ClassReflect.java History: Fri, Sep 27, 2013 10:41:58 PM, Created by tomyeh Copyright (C) 2013 Potix Corporation. All Rights Reserved. */ package org.zkoss.zel.impl.util; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * The implementation of {@link ClassUtil}. * * @author tomyeh */ public interface ClassReflect { /** * Gets one of the close methods -- a close method is a method * with the same name and the compatible argument type. */ public Method getCloseMethod(Class<?> cls, String name, Class<?>[] argTypes) throws NoSuchMethodException; /** * Instantiates a new instance of the specified class with the * specified argument. */ public Object newInstance(Class<?> cls, Object[] args) throws NoSuchMethodException, InstantiationException, InvocationTargetException, IllegalAccessException; /** * Returns the context ClassLoader for the reference class. * @param reference the reference class where it is invoked from. * @since 8.0.2 */ public ClassLoader getContextClassLoader(Class<?> reference); }