Package org.mozilla.javascript
Class MemberBox
- java.lang.Object
-
- org.mozilla.javascript.MemberBox
-
- All Implemented Interfaces:
java.io.Serializable
final class MemberBox extends java.lang.Object implements java.io.Serializable
Wrapper class for Method and Constructor instances to cache getParameterTypes() results, recover from IllegalAccessException in some cases and provide serialization support.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.Class<?>[]
argTypes
(package private) java.lang.Object
delegateTo
private java.lang.reflect.Member
memberObject
private static java.lang.Class<?>[]
primitives
private static long
serialVersionUID
(package private) boolean
vararg
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.reflect.Constructor<?>
ctor()
(package private) java.lang.Class<?>
getDeclaringClass()
(package private) java.lang.String
getName()
private void
init(java.lang.reflect.Constructor<?> constructor)
private void
init(java.lang.reflect.Method method)
(package private) java.lang.Object
invoke(java.lang.Object target, java.lang.Object[] args)
(package private) boolean
isCtor()
(package private) boolean
isMethod()
(package private) boolean
isPublic()
(package private) boolean
isStatic()
(package private) java.lang.reflect.Member
member()
(package private) java.lang.reflect.Method
method()
(package private) java.lang.Object
newInstance(java.lang.Object[] args)
private static java.lang.reflect.Member
readMember(java.io.ObjectInputStream in)
Reads a Method or a Constructor from the stream.private void
readObject(java.io.ObjectInputStream in)
private static java.lang.Class<?>[]
readParameters(java.io.ObjectInputStream in)
Reads an array of parameter types from the stream.private static java.lang.reflect.Method
searchAccessibleMethod(java.lang.reflect.Method method, java.lang.Class<?>[] params)
(package private) java.lang.String
toJavaDeclaration()
java.lang.String
toString()
private static void
writeMember(java.io.ObjectOutputStream out, java.lang.reflect.Member member)
Writes a Constructor or Method object.private void
writeObject(java.io.ObjectOutputStream out)
private static void
writeParameters(java.io.ObjectOutputStream out, java.lang.Class<?>[] parms)
Writes an array of parameter types to the stream.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
memberObject
private transient java.lang.reflect.Member memberObject
-
argTypes
transient java.lang.Class<?>[] argTypes
-
delegateTo
transient java.lang.Object delegateTo
-
vararg
transient boolean vararg
-
primitives
private static final java.lang.Class<?>[] primitives
-
-
Method Detail
-
init
private void init(java.lang.reflect.Method method)
-
init
private void init(java.lang.reflect.Constructor<?> constructor)
-
method
java.lang.reflect.Method method()
-
ctor
java.lang.reflect.Constructor<?> ctor()
-
member
java.lang.reflect.Member member()
-
isMethod
boolean isMethod()
-
isCtor
boolean isCtor()
-
isStatic
boolean isStatic()
-
isPublic
boolean isPublic()
-
getName
java.lang.String getName()
-
getDeclaringClass
java.lang.Class<?> getDeclaringClass()
-
toJavaDeclaration
java.lang.String toJavaDeclaration()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
invoke
java.lang.Object invoke(java.lang.Object target, java.lang.Object[] args)
-
newInstance
java.lang.Object newInstance(java.lang.Object[] args)
-
searchAccessibleMethod
private static java.lang.reflect.Method searchAccessibleMethod(java.lang.reflect.Method method, java.lang.Class<?>[] params)
-
readObject
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
writeObject
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
writeMember
private static void writeMember(java.io.ObjectOutputStream out, java.lang.reflect.Member member) throws java.io.IOException
Writes a Constructor or Method object. Methods and Constructors are not serializable, so we must serialize information about the class, the name, and the parameters and recreate upon deserialization.- Throws:
java.io.IOException
-
readMember
private static java.lang.reflect.Member readMember(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
Reads a Method or a Constructor from the stream.- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
writeParameters
private static void writeParameters(java.io.ObjectOutputStream out, java.lang.Class<?>[] parms) throws java.io.IOException
Writes an array of parameter types to the stream. Requires special handling because primitive types cannot be found upon deserialization by the default Java implementation.- Throws:
java.io.IOException
-
readParameters
private static java.lang.Class<?>[] readParameters(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
Reads an array of parameter types from the stream.- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
-