Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

java.lang.reflect
Class Proxy.ProxyData  view Proxy.ProxyData download Proxy.ProxyData.java

java.lang.Object
  extended byjava.lang.reflect.Proxy.ProxyData
Enclosing class:
Proxy

static final class Proxy.ProxyData
extends java.lang.Object

A flat representation of all data needed to generate bytecode/instantiate a proxy class. This is basically a struct.


Field Summary
private static int count
          For unique id's
(package private)  java.lang.Class[][] exceptions
          The exceptions that do not need to be wrapped in UndeclaredThrowableException.
(package private)  int id
          The id of this proxy class
(package private)  java.lang.Class[] interfaces
          The interfaces this class implements.
(package private)  Method[] methods
          The Method objects this class must pass as the second argument to invoke (also useful for determining what methods this class has).
(package private)  java.lang.String pack
          The package this class is in including the trailing dot or an empty string for the unnamed (aka default) package.
 
Constructor Summary
(package private) Proxy.ProxyData()
          Construct a ProxyData with uninitialized data members.
 
Method Summary
private static java.lang.String getPackage(java.lang.Class k)
          Return the name of a package (including the trailing dot) given the name of a class.
(package private) static Proxy.ProxyData getProxyData(Proxy.ProxyType pt)
          Verifies that the arguments are legal, and sets up remaining data This should only be called when a class must be generated, as it is expensive.
private static boolean isCoreObjectMethod(Method method)
          Checks whether the method is similar to a public non-final method of Object or not (i.e.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pack

java.lang.String pack
The package this class is in including the trailing dot or an empty string for the unnamed (aka default) package.


interfaces

java.lang.Class[] interfaces
The interfaces this class implements. Non-null, but possibly empty.


methods

Method[] methods
The Method objects this class must pass as the second argument to invoke (also useful for determining what methods this class has). Non-null, non-empty (includes at least Object.hashCode, Object.equals, and Object.toString).


exceptions

java.lang.Class[][] exceptions
The exceptions that do not need to be wrapped in UndeclaredThrowableException. exceptions[i] is the same as, or a subset of subclasses, of methods[i].getExceptionTypes(), depending on compatible throws clauses with multiple inheritance. It is unspecified if these lists include or exclude subclasses of Error and RuntimeException, but excluding them is harmless and generates a smaller class.


count

private static int count
For unique id's


id

final int id
The id of this proxy class

Constructor Detail

Proxy.ProxyData

Proxy.ProxyData()
Construct a ProxyData with uninitialized data members.

Method Detail

getPackage

private static java.lang.String getPackage(java.lang.Class k)
Return the name of a package (including the trailing dot) given the name of a class. Returns an empty string if no package. We use this in preference to using Class.getPackage() to avoid problems with ClassLoaders that don't set the package.


getProxyData

static Proxy.ProxyData getProxyData(Proxy.ProxyType pt)
Verifies that the arguments are legal, and sets up remaining data This should only be called when a class must be generated, as it is expensive.


isCoreObjectMethod

private static boolean isCoreObjectMethod(Method method)
Checks whether the method is similar to a public non-final method of Object or not (i.e. with the same name and parameter types). Note that we can't rely, directly or indirectly (via Collection.contains) on Method.equals as it would also check the declaring class, what we do not want. We only want to check that the given method have the same signature as a core method (same name and parameter types)