All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cedarsoftware.util.ProxyFactory Maven / Gradle / Ivy

The newest version!
package com.cedarsoftware.util;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

/**
 * Handy utilities for working with Java arrays.
 *
 * @author Ken Partlow
 *         
* Copyright (c) Cedar Software LLC *

* 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 *

* License *

* 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. */ @Deprecated public final class ProxyFactory { /** * This class should be used statically */ private ProxyFactory() {} /** * Returns an instance of a proxy class for the specified interfaces * that dispatches method invocations to the specified invocation * handler. * * @param intf the interface for the proxy to implement * @param h the invocation handler to dispatch method invocations to * @return a proxy instance with the specified invocation handler of a * proxy class that is defined by the specified class loader * and that implements the specified interfaces * @throws IllegalArgumentException if any of the restrictions on the * parameters that may be passed to getProxyClass * are violated * @throws NullPointerException if the interfaces array * argument or any of its elements are null, or * if the invocation handler, h, is * null */ public static T create(Class intf, InvocationHandler h) { return create(h.getClass().getClassLoader(), intf, h); } /** * Returns an instance of a proxy class for the specified interfaces * that dispatches method invocations to the specified invocation * handler. * * @param loader the class loader to define the proxy class * @param intf the interface for the proxy to implement * @param h the invocation handler to dispatch method invocations to * @return a proxy instance with the specified invocation handler of a * proxy class that is defined by the specified class loader * and that implements the specified interfaces * @throws IllegalArgumentException if any of the restrictions on the * parameters that may be passed to getProxyClass * are violated * @throws NullPointerException if the interfaces array * argument or any of its elements are null, or * if the invocation handler, h, is * null */ @SuppressWarnings("unchecked") public static T create(ClassLoader loader, Class intf, InvocationHandler h) { return (T)Proxy.newProxyInstance(loader, new Class[]{intf}, h); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy