Package com.sun.tools.corba.ee.idl
Class ValueEntry
- java.lang.Object
-
- com.sun.tools.corba.ee.idl.SymtabEntry
-
- com.sun.tools.corba.ee.idl.InterfaceEntry
-
- com.sun.tools.corba.ee.idl.ValueEntry
-
- All Implemented Interfaces:
InterfaceType
- Direct Known Subclasses:
ValueBoxEntry
public class ValueEntry extends InterfaceEntry
This is the symbol table entry for values.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
_custom
private java.util.Vector<MethodEntry>
_initializers
private boolean
_isSafe
private java.util.Vector<SymtabEntry>
_supports
private java.util.Vector<java.lang.String>
_supportsNames
(package private) static ValueGen
valueGen
-
Fields inherited from class com.sun.tools.corba.ee.idl.InterfaceEntry
_allMethods, forwardedDerivers, interfaceGen
-
Fields inherited from class com.sun.tools.corba.ee.idl.SymtabEntry
includeStack, maxKey, setEmit
-
Fields inherited from interface com.sun.tools.corba.ee.idl.InterfaceType
ABSTRACT, LOCAL, LOCAL_SIGNATURE_ONLY, LOCALSERVANT, NORMAL
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ValueEntry()
protected
ValueEntry(SymtabEntry that, IDLID clone)
protected
ValueEntry(ValueEntry that)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSupport(SymtabEntry supports)
Add an InterfaceEntry to the list of interfaces which this value supports.void
addSupportName(java.lang.String name)
Add to the list of support names.java.lang.Object
clone()
This is a shallow copy clone(package private) void
derivedFromAddElement(SymtabEntry e, boolean isSafe, Scanner scanner)
Add a parent value type to the list of parent types for the value.(package private) void
derivedFromAddElement(SymtabEntry e, Scanner scanner)
void
generate(java.util.Hashtable symbolTable, java.io.PrintWriter stream)
Invoke the interface generator.Generator
generator()
Access the value generator.java.util.Vector<MethodEntry>
initializers()
(package private) void
initializersAddElement(MethodEntry method, Scanner scanner)
boolean
isCustom()
Get the 'custom' marshaling property.boolean
isSafe()
Return whether or not the value type can be "safely" truncated to its concrete parent type.boolean
replaceForwardDecl(ForwardEntry oldEntry, InterfaceEntry newEntry)
void
setCustom(boolean isCustom)
Set the 'custom' marshaling property.java.util.Vector<SymtabEntry>
supports()
This method returns a vector ofInterfaceEntry
s.java.util.Vector<java.lang.String>
supportsNames()
This method returns a vector of Strings, each of which is a fully qualified name of an interface.void
tagMethods()
Tag all methods introduced by the value type as 'value methods' so they can be differentiated in the emitters from any interface methods that the value type supports.-
Methods inherited from class com.sun.tools.corba.ee.idl.InterfaceEntry
addContained, addDerivedFrom, addDerivedFromName, addMethod, addParentType, addStateElement, addToForwardedAllMethods, allMethods, contained, derivedFrom, derivedFromNames, getInterfaceType, initState, isAbstract, isLocal, isLocalServant, isLocalSignature, methods, methodsAddElement, setInterfaceType, state
-
Methods inherited from class com.sun.tools.corba.ee.idl.SymtabEntry
comment, comment, container, container, dynamicVariable, dynamicVariable, emit, emit, enteringInclude, exitingInclude, fullName, getVariableKey, growVars, initDynamicVars, isReferencable, isReferencable, module, module, name, name, repositoryID, repositoryID, sourceFile, sourceFile, type, type, typeName, typeName
-
-
-
-
Field Detail
-
_supportsNames
private java.util.Vector<java.lang.String> _supportsNames
-
_supports
private java.util.Vector<SymtabEntry> _supports
-
_initializers
private java.util.Vector<MethodEntry> _initializers
-
_custom
private boolean _custom
-
_isSafe
private boolean _isSafe
-
valueGen
static ValueGen valueGen
-
-
Constructor Detail
-
ValueEntry
protected ValueEntry()
-
ValueEntry
protected ValueEntry(ValueEntry that)
-
ValueEntry
protected ValueEntry(SymtabEntry that, IDLID clone)
-
-
Method Detail
-
clone
public java.lang.Object clone()
Description copied from class:SymtabEntry
This is a shallow copy clone- Overrides:
clone
in classInterfaceEntry
-
generate
public void generate(java.util.Hashtable symbolTable, java.io.PrintWriter stream)
Invoke the interface generator.- Overrides:
generate
in classInterfaceEntry
- 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.- See Also:
SymtabEntry
-
generator
public Generator generator()
Access the value generator.- Overrides:
generator
in classInterfaceEntry
- Returns:
- an object which implements the ValueGen interface.
- See Also:
ValueGen
-
addSupport
public void addSupport(SymtabEntry supports)
Add an InterfaceEntry to the list of interfaces which this value supports. During parsing, the parameter to this method COULD be a ForwardEntry, but when parsing is complete, calling supports will return a vector which only contains InterfaceEntry's.- Parameters:
supports
- aForwardEntry
orInterfaceEntry
-
supports
public java.util.Vector<SymtabEntry> supports()
This method returns a vector ofInterfaceEntry
s.- Returns:
- a
Vector
ofInterfaceEntry
-
addSupportName
public void addSupportName(java.lang.String name)
Add to the list of support names.- Parameters:
name
- name to add
-
supportsNames
public java.util.Vector<java.lang.String> supportsNames()
This method returns a vector of Strings, each of which is a fully qualified name of an interface. This vector corresponds to the supports vector. The first element of this vector is the name of the first element of the supports vector, etc.- Returns:
- a
Vector
ofString
s
-
derivedFromAddElement
void derivedFromAddElement(SymtabEntry e, boolean isSafe, Scanner scanner)
Add a parent value type to the list of parent types for the value. This method:- Allows only the first added class to be concrete if the receiver is concrete.
- Does not allow any added classes to be concrete if the receiver is abstract.
- Does not allow duplicate classes to be added.
-
derivedFromAddElement
void derivedFromAddElement(SymtabEntry e, Scanner scanner)
- Overrides:
derivedFromAddElement
in classInterfaceEntry
-
replaceForwardDecl
public boolean replaceForwardDecl(ForwardEntry oldEntry, InterfaceEntry newEntry)
- Overrides:
replaceForwardDecl
in classInterfaceEntry
-
initializersAddElement
void initializersAddElement(MethodEntry method, Scanner scanner)
-
initializers
public java.util.Vector<MethodEntry> initializers()
-
tagMethods
public void tagMethods()
Tag all methods introduced by the value type as 'value methods' so they can be differentiated in the emitters from any interface methods that the value type supports.
-
isCustom
public boolean isCustom()
Get the 'custom' marshaling property.- Returns:
- if the entry should be marshaled customly
-
setCustom
public void setCustom(boolean isCustom)
Set the 'custom' marshaling property.- Parameters:
isCustom
- if the entry should be marshaled customly
-
isSafe
public boolean isSafe()
Return whether or not the value type can be "safely" truncated to its concrete parent type.- Returns:
- true if it can be safely truncated
-
-