|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.rit.classfile.SubroutineReference
edu.rit.classfile.SubroutineDescription
edu.rit.classfile.SynthesizedSubroutineDescription
edu.rit.classfile.SynthesizedAbstractMethodDescription
public class SynthesizedAbstractMethodDescription
Class SynthesizedAbstractMethodDescription is used to synthesize a subroutine description for some actual abstract method. To synthesize an abstract method:
Or:
Or:
In the documentation below, the term "described method" means "the synthesized abstract method described by this synthesized abstract method description object."
To synthesize a non-abstract method, see class SynthesizedMethodDescription
.
Constructor Summary | |
---|---|
SynthesizedAbstractMethodDescription(SynthesizedClassDescription theClassDescription,
String theMethodName)
Construct a new synthesized abstract method description object with the given name. |
|
SynthesizedAbstractMethodDescription(SynthesizedClassDescription theClassDescription,
String theMethodName,
String theMethodDescriptor)
Construct a new synthesized abstract method description object with the given name and method descriptor. |
Method Summary | |
---|---|
void |
addArgumentType(TypeReference theArgumentType)
Add an argument to the described method. |
void |
addThrownException(ClassReference theExceptionClass)
Add a thrown exception to the described method. |
void |
setMethodDescriptor(String theMethodDescriptor)
Specify the described method's method descriptor. |
void |
setPackageScoped()
Specify that the described method has default access (also known as package scoped), that is, may be accessed only from inside its defining package or inside its defining class. |
void |
setProtected()
Specify that the described method is protected, that is, may be accessed only from inside its defining package, inside its defining class, or inside subclasses of its defining class. |
void |
setPublic()
Specify that the described method is public, that is, may be accessed from inside and outside its defining package. |
void |
setReturnType(TypeReference theReturnType)
Specify the described method's return type. |
Methods inherited from class edu.rit.classfile.SubroutineDescription |
---|
getCodeLength, getExceptionHandlers, getInstructions, getMaxLocals, getMaxStack, getThrownExceptions, isAbstract, isFinal, isNative, isPackageScoped, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSynchronized |
Methods inherited from class edu.rit.classfile.SubroutineReference |
---|
equals, getArgumentTypes, getArgumentWordCount, getClassReference, getMethodDescriptor, getMethodName, getReturnType, hashCode, toString |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SynthesizedAbstractMethodDescription(SynthesizedClassDescription theClassDescription, String theMethodName) throws ListFullException
theClassDescription
- Class containing this method.theMethodName
- Method name.
NullPointerException
- (unchecked exception) Thrown if theClassDescription is null
or theMethodName is null.
IllegalArgumentException
- (unchecked exception) Thrown if theMethodName is zero
length.
ListFullException
- Thrown if theClassDescription's subroutine list is full
(i.e., contains 65535 subroutines).public SynthesizedAbstractMethodDescription(SynthesizedClassDescription theClassDescription, String theMethodName, String theMethodDescriptor) throws ListFullException
theClassDescription
- Class containing this method.theMethodName
- Method name.theMethodDescriptor
- Method descriptor in the format specified by Section 4.3.3 of the
Java Virtual Machine Specification, Second Edition.
NullPointerException
- (unchecked exception) Thrown if theClassDescription is null
or theMethodName is null or theMethodDescriptor is
null.
IllegalArgumentException
- (unchecked exception) Thrown if theMethodName is zero
length. Thrown if theMethodDescriptor does not obey the
syntax of a method descriptor. Thrown if the number of arguments in
theMethodDescriptor exceeds the limit (254).
ListFullException
- Thrown if theClassDescription's subroutine list is full
(i.e., contains 65535 subroutines).Method Detail |
---|
public void setPublic()
public void setProtected()
public void setPackageScoped()
public void setReturnType(TypeReference theReturnType)
theReturnType
- Type reference for the return type, or null if the
described method returns void.
IllegalStateException
- (unchecked exception) Thrown if the return type cannot be altered
because this method description is already in use.public void addArgumentType(TypeReference theArgumentType) throws ListFullException
theArgumentType
- Argument's type reference.
NullPointerException
- (unchecked exception) Thrown if theArgumentType is null.
IllegalStateException
- (unchecked exception) Thrown if further argument types cannot be
added because this method description is already in use.
ListFullException
- Thrown if adding theArgumentType would cause the described
method's argument word count to exceed the limit (254).public void setMethodDescriptor(String theMethodDescriptor)
theMethodDescriptor
- Method descriptor in the format specified by Section 4.3.3 of the
Java Virtual Machine Specification, Second Edition.
NullPointerException
- (unchecked exception) Thrown if theMethodDescriptor is null.
IllegalStateException
- (unchecked exception) Thrown if the method descriptor cannot be
set because this method description is already in use.
IllegalArgumentException
- (unchecked exception) Thrown if theMethodDescriptor does not
obey the syntax of a method descriptor. Thrown if the number of
arguments in theMethodDescriptor exceeds the limit (254).public void addThrownException(ClassReference theExceptionClass) throws ListFullException
theExceptionClass
- Exception's class reference.
NullPointerException
- (unchecked exception) Thrown if theExceptionClass is null.
ListFullException
- Thrown if the requisite constant pool entries could not be added
because the constant pool is full. Also thrown if the described
method's thrown exception list is full (i.e., contains 65535 thrown
exceptions).
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |