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_customprivate java.util.Vector<MethodEntry>_initializersprivate boolean_isSafeprivate java.util.Vector<SymtabEntry>_supportsprivate java.util.Vector<java.lang.String>_supportsNames(package private) static ValueGenvalueGen-
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 protectedValueEntry()protectedValueEntry(SymtabEntry that, IDLID clone)protectedValueEntry(ValueEntry that)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddSupport(SymtabEntry supports)Add an InterfaceEntry to the list of interfaces which this value supports.voidaddSupportName(java.lang.String name)Add to the list of support names.java.lang.Objectclone()This is a shallow copy clone(package private) voidderivedFromAddElement(SymtabEntry e, boolean isSafe, Scanner scanner)Add a parent value type to the list of parent types for the value.(package private) voidderivedFromAddElement(SymtabEntry e, Scanner scanner)voidgenerate(java.util.Hashtable symbolTable, java.io.PrintWriter stream)Invoke the interface generator.Generatorgenerator()Access the value generator.java.util.Vector<MethodEntry>initializers()(package private) voidinitializersAddElement(MethodEntry method, Scanner scanner)booleanisCustom()Get the 'custom' marshaling property.booleanisSafe()Return whether or not the value type can be "safely" truncated to its concrete parent type.booleanreplaceForwardDecl(ForwardEntry oldEntry, InterfaceEntry newEntry)voidsetCustom(boolean isCustom)Set the 'custom' marshaling property.java.util.Vector<SymtabEntry>supports()This method returns a vector ofInterfaceEntrys.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.voidtagMethods()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:SymtabEntryThis is a shallow copy clone- Overrides:
clonein classInterfaceEntry
-
generate
public void generate(java.util.Hashtable symbolTable, java.io.PrintWriter stream)Invoke the interface generator.- Overrides:
generatein 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:
generatorin 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- aForwardEntryorInterfaceEntry
-
supports
public java.util.Vector<SymtabEntry> supports()
This method returns a vector ofInterfaceEntrys.- Returns:
- a
VectorofInterfaceEntry
-
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
VectorofStrings
-
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:
derivedFromAddElementin classInterfaceEntry
-
replaceForwardDecl
public boolean replaceForwardDecl(ForwardEntry oldEntry, InterfaceEntry newEntry)
- Overrides:
replaceForwardDeclin 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
-
-