All Packages This Package Class Hierarchy Class Search Index
java.lang.Object | +----edu.utah.janos.antsr.core.CapsuleClass
| Summary |
final class CapsuleClass
extends java.lang.Object
{
// Fields 6
Class cl;
private final byte[] code;
final CodeGroup group;
final TypeID methodID;
private final String name;
private final UserID tmp_userID;
// Constructors 1
CapsuleClass(CodeGroup, TypeID, String, byte[]) throws DuplicateCapsuleClassException;
// Methods 8
static TypeID computeMethodID(TypeID, TypeID, TypeID);
boolean checkMethodID();
final byte[] code();
final int codeSize();
final String name();
TypeID protocolID();
public String toString();
UserID userID();
}
This class (along with CodeGroup) represents all the information about a type of capsule. Both are used only within ANTSR. Protocol uses CapsuleClasses & CodeGroups during protocol registration. CapsuleChannels use `em during capsule execution/dispatch. The DL* classes use `em during dynamic code loading over the net.
A class can be loaded from two places:
CapsuleClass objects are only constructed in a two places:
The fields of this class have package access since a CapsuleClass may be in many different states of completion during code loading and protocol registration. XXX Actually, that's probably not true.
| Cross Reference |
| Fields |
· code | Summary | Top |
private final byte[] code
The complete Class File this CapsuleClass represents.
· name | Summary | Top |
private final String name
The name of the class this CapsuleClass represents.
· cl | Summary | Top |
Class cl
The class this CapsuleClass represents, after its been loaded of course. XXX make private and add accessor methods
· methodID | Summary | Top |
final TypeID methodID
Hash of the codeID + groupID + protocolID.
rename to capsuleID XXX make private.
See Also: computeMethodID
· group | Summary | Top |
final CodeGroup group
The CodeGroup this CapsuleClass is a part of. XXX make private.
· tmp_userID | Summary | Top |
private final UserID tmp_userID
| Constructors |
· CapsuleClass | Summary | Top |
CapsuleClass(CodeGroup group,
TypeID methodID,
String name,
byte[] code) throws DuplicateCapsuleClassException
Construct a CapsuleClass with the given group, mid, name, and code. The code may be an empty array of the right length which can be filled in later.
- Throws: DuplicateCapsuleClassException
- if a capsule class is already registered under this name.
| Methods |
· code | Summary | Top |
final byte[] code()
Get the underlying array of bytes for the Class this CapsuleClass represents.
· codeSize | Summary | Top |
final int codeSize()
Get the size of the code for the Class this CapsuleClass represents.
· name | Summary | Top |
final String name()
Get the name of this CapsuleClass. (Also happens to be the name of the Class this CapsuleClass represents...
· computeMethodID | Summary | Top |
static TypeID computeMethodID(TypeID codeID,
TypeID groupID,
TypeID protocolID)
Compute a method ID based on a codeID, a groupID and protocolID.
- Returns:
- the computed TypeID.
· protocolID | Summary | Top |
TypeID protocolID()
Fetch the ProtocolID associated with this CapsuleClass.
· userID | Summary | Top |
UserID userID()
· checkMethodID | Summary | Top |
boolean checkMethodID()
Check that
this.methodIDmatches the computed method ID. Called as a security check after downloading a codegroup, to make sure that the code really is part of the protocol that it claims to belong to. This should not be called for locally defined protocols (i.e., builtin).
- Returns:
- true if they match
See Also: computeMethodID
· toString | Summary | Top |
public String toString()
- Overrides:
- toString in class Object
All Packages This Package Class Hierarchy Class Search IndexFreshly brewed Java API Documentation automatically generated with polardoc Version 1.0.7