Package com.sun.tools.corba.ee.idl
Class SymtabEntry
java.lang.Object
com.sun.tools.corba.ee.idl.SymtabEntry
- Direct Known Subclasses:
ConstEntry
,EnumEntry
,ForwardEntry
,IncludeEntry
,InterfaceEntry
,MethodEntry
,ModuleEntry
,NativeEntry
,ParameterEntry
,PragmaEntry
,PrimitiveEntry
,SequenceEntry
,StringEntry
,StructEntry
,TypedefEntry
,UnionEntry
This is the base class for all symbol table entries.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Comment
private SymtabEntry
private boolean
private Object
private boolean
private String
private String
private RepositoryID
private IncludeEntry
private SymtabEntry
private String
(package private) static int
(package private) static boolean
-
Constructor Summary
ConstructorsConstructorDescriptionSymtabEntry
(SymtabEntry that) This is a shallow copy constructorSymtabEntry
(SymtabEntry that, IDLID clone) -
Method Summary
Modifier and TypeMethodDescriptionclone()
This is a shallow copy clonecomment()
void
This must be either an InterfaceEntry or a ModuleEntry.void
container
(SymtabEntry newContainer) This must be either an InterfaceEntry or a ModuleEntry.dynamicVariable
(int key) Other variables besides the default ones can be dynamically placed into SymTabEntry (and therefore on all symbol table entries) by extenders.void
dynamicVariable
(int key, Object value) Other variables besides the default ones can be dynamically placed into SymTabEntry (and therefore on all symbol table entries) by extenders.boolean
emit()
Should this type be emitted?void
emit
(boolean emit) (package private) static void
(package private) static void
final String
fullName()
void
generate
(Hashtable symbolTable, PrintWriter stream) Invoke a generator.Access a generator.static int
Other variables besides the default ones can be dynamically placed into SymTabEntry (and therefore on all symbol table entries) by extenders.(package private) void
growVars()
(package private) void
boolean
void
isReferencable
(boolean value) module()
Get the name of this entry's module.void
Set the module for this entry.name()
void
Set the name.void
Set the repository ID for this entry.The file name in which this entry was defined.void
sourceFile
(IncludeEntry file) The file name in which this entry was defined.type()
void
type
(SymtabEntry newType) typeName()
protected void
-
Field Details
-
includeStack
-
setEmit
static boolean setEmit -
maxKey
static int maxKey -
_container
-
_module
-
_name
-
_typeName
-
_type
-
_sourceFile
-
_info
-
_repID
-
_emit
private boolean _emit -
_comment
-
_dynamicVars
-
_isReferencable
private boolean _isReferencable
-
-
Constructor Details
-
SymtabEntry
public SymtabEntry() -
SymtabEntry
SymtabEntry(SymtabEntry that, IDLID clone) -
SymtabEntry
SymtabEntry(SymtabEntry that) This is a shallow copy constructor- Parameters:
that
- SymtabEntry to copy
-
-
Method Details
-
initDynamicVars
void initDynamicVars() -
clone
This is a shallow copy clone -
fullName
- Returns:
- the concatenation of the module and the name, delimited by '/'.
-
module
Get the name of this entry's module. If there are modules within modules, each module name is separated by '/'.- Returns:
- this entry's module name.
-
module
Set the module for this entry.- Parameters:
newName
- the new name of the module.
-
name
- Returns:
- the name of this entry.
-
name
Set the name.- Parameters:
newName
- the new name.
-
typeName
- Returns:
- the type name of this entry.
-
typeName
-
type
- Returns:
- the type entry of this entry
-
type
-
sourceFile
The file name in which this entry was defined.- Returns:
IncludeEntry
of fileName
-
sourceFile
The file name in which this entry was defined.- Parameters:
file
-IncludeEntry
of the file
-
container
This must be either an InterfaceEntry or a ModuleEntry. It can be nothing else.- Returns:
- container of the entry
-
container
This must be either an InterfaceEntry or a ModuleEntry. It can be nothing else.- Parameters:
newContainer
-InterfaceEntry
orModuleEntry
-
repositoryID
- Returns:
- the repository ID for this entry.
-
repositoryID
Set the repository ID for this entry.- Parameters:
id
- the new repository ID.
-
emit
public boolean emit()Should this type be emitted?- Returns:
- true if this type is emitted and referencable
-
emit
public void emit(boolean emit) -
comment
-
comment
-
isReferencable
public boolean isReferencable() -
isReferencable
public void isReferencable(boolean value) -
enteringInclude
static void enteringInclude() -
exitingInclude
static void exitingInclude() -
getVariableKey
public static int getVariableKey()Other variables besides the default ones can be dynamically placed into SymTabEntry (and therefore on all symbol table entries) by extenders. Before such a variable can exist, its key must be obtained by calling getVariableKey.- Returns:
- the key for placing variables into the entry
-
dynamicVariable
Other variables besides the default ones can be dynamically placed into SymTabEntry (and therefore on all symbol table entries) by extenders. This method assigns the value to the variable of the given key. A valid key must be obtained by calling the method getVariableKey. If the key is invalid, NoSuchFieldException is thrown.- Parameters:
key
- obtained bygetVariableKey()
value
- variable to assign to key- Throws:
NoSuchFieldException
- if key is invalid
-
dynamicVariable
Other variables besides the default ones can be dynamically placed into SymTabEntry (and therefore on all symbol table entries) by extenders. This method gets the value of the variable of the given key. A valid key must be obtained by calling the method getVariableKey. If the key is invalid,NoSuchFieldException
is thrown.- Parameters:
key
- obtained by callinggetVariableKey()
- Returns:
- the variable for the key
- Throws:
NoSuchFieldException
- if key is invalid
-
growVars
void growVars() -
generate
Invoke a generator. A call to this method is only meaningful for subclasses of SymtabEntry. If called on this class, it is a no-op.- Parameters:
symbolTable
- the symbol table is a hash table whose key is a fully qualified type name and whose value is a SymtabEntry or a subclass of SymtabEntry.stream
- the stream to which the generator should sent its output.
-
generator
Access a generator. A call to this method is only meaningful for subclasses of SymtabEntry. If called on this class, it is a no-op.- Returns:
- an object which implements the Generator interface.
-