Lines Matching defs:interfaces

69  * class</i> below) is a class that implements a list of interfaces
81 * interfaces will be dispatched to the {@link InvocationHandler#invoke
101 * <li>A proxy class implements exactly the interfaces specified at its
112 * <li>Since a proxy class implements all of the interfaces specified at
115 * list of interfaces (in the order specified at its creation), invoking
118 * methods in those interfaces, and invoking {@code getMethod} will
119 * find methods in the proxy interfaces as would be expected.
147 * interfaces implemented by its proxy class {@code Foo}, the
184 * <p>When two or more interfaces of a proxy class contain a method with
186 * interfaces becomes significant. When such a <i>duplicate method</i>
196 * superinterface) in the proxy class's list of interfaces is passed to
207 * logically precede all of the proxy interfaces for the determination of
214 * the proxy interfaces that it can be invoked through. If the
217 * of the proxy interfaces that it can be invoked through, then an
338 * given a class loader and an array of interfaces. The proxy class
340 * all of the supplied interfaces. If a proxy class for the same
341 * permutation of interfaces has already been defined by the class
343 * a proxy class for those interfaces will be generated dynamically
351 * {@code interfaces} array must represent interfaces, not
354 * <li>No two elements in the {@code interfaces} array may
365 * <li>All non-public interfaces must be in the same package;
367 * implement all of the interfaces, regardless of what package it is
370 * <li>For any set of member methods of the specified interfaces
383 * the number of interfaces that a class may implement to 65535; in
384 * that case, the size of the {@code interfaces} array must not
390 * {@code IllegalArgumentException}. If the {@code interfaces}
394 * <p>Note that the order of the specified proxy interfaces is
396 * of interfaces but in a different order will result in two distinct
400 * @param interfaces the list of interfaces for the proxy class
403 * and that implements the specified interfaces
407 * @throws NullPointerException if the {@code interfaces} array
412 Class<?>... interfaces)
417 checkProxyAccess(Reflection.getCallerClass(), loader, interfaces);
420 return getProxyClass0(loader, interfaces);
429 * 2. checkPackageAccess on the interfaces it implements
432 * the package access check on the interfaces it implements
443 Class<?>... interfaces)
453 ReflectUtil.checkProxyPackageAccess(ccl, interfaces);
462 Class<?>... interfaces) {
463 if (interfaces.length > 65535) {
470 String[] interfaceNames = new String[interfaces.length];
475 for (int i = 0; i < interfaces.length; i++) {
480 String interfaceName = interfaces[i].getName();
486 if (interfaceClass != interfaces[i]) {
488 interfaces[i] + " is not visible from class loader");
513 * Using string representations of the proxy interfaces as
516 * interfaces to be resolvable by name through the supplied
541 * Look up the list of interfaces in the proxy class cache using
545 * interfaces in the class loader,
547 * list of interfaces is currently being generated,
549 * the list of interfaces has already been generated.
581 * No proxy class for this list of interfaces has been
597 * all non-public proxy interfaces are in the same package.
599 for (int i = 0; i < interfaces.length; i++) {
600 int flags = interfaces[i].getModifiers();
602 String name = interfaces[i].getName();
609 "non-public interfaces from different packages");
615 // if no non-public proxy interfaces, use com.sun.proxy package
637 proxyName, interfaces);
676 * Returns an instance of a proxy class for the specified interfaces
680 * Proxy.getProxyClass(loader, interfaces).
690 * @param interfaces the list of interfaces for the proxy class
695 * and that implements the specified interfaces
699 * @throws NullPointerException if the {@code interfaces} array
706 Class<?>[] interfaces,
716 checkProxyAccess(Reflection.getCallerClass(), loader, interfaces);
722 Class<?> cl = getProxyClass0(loader, interfaces);
732 // implement non-public interfaces that requires a special permission