Class ValueEntry

    • 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
    • Constructor Detail

      • ValueEntry

        protected ValueEntry()
      • ValueEntry

        protected ValueEntry​(ValueEntry that)
    • Method Detail

      • clone

        public java.lang.Object clone()
        Description copied from class: SymtabEntry
        This is a shallow copy clone
        Overrides:
        clone in class InterfaceEntry
      • generate

        public void generate​(java.util.Hashtable symbolTable,
                             java.io.PrintWriter stream)
        Invoke the interface generator.
        Overrides:
        generate in class InterfaceEntry
        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
      • 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 - a ForwardEntry or InterfaceEntry
      • 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 of Strings
      • 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.
      • 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