Class SymbolReference

    • Constructor Detail

      • SymbolReference

        public SymbolReference​(Symbol symbol,
                               SymbolReference.Option... options)
        Parameters:
        symbol - Symbol that is referenced.
        options - Options to store with the reference.
      • SymbolReference

        public SymbolReference​(Symbol symbol,
                               java.util.Map<java.lang.String,​java.lang.Object> properties,
                               SymbolReference.Option... options)
        Parameters:
        symbol - Symbol that is referenced.
        properties - Bag of reference properties.
        options - Options to store with the reference.
    • Method Detail

      • getSymbol

        public Symbol getSymbol()
        Gets the referenced symbol.
        Returns:
        Returns the symbol.
      • getAlias

        public java.lang.String getAlias()
        Gets the alias to use when referring to the Symbol.

        The value of getSymbol().getName() is returned if no alias was explicitly configured on the reference.

        An alias is used in some programming languages to change the way a symbol is referenced in a source file. Aliases are often used for de-conflicting symbols.

        Returns:
        Returns the alias.
      • getOptions

        public java.util.Set<SymbolReference.Option> getOptions()
        Gets all of the reference options.
        Returns:
        Returns the options set.
      • hasOption

        public boolean hasOption​(SymbolReference.Option option)
        Checks if the given option is set on the symbol.
        Parameters:
        option - Option to check.
        Returns:
        Returns true if this option is set.
      • getDependencies

        public java.util.List<SymbolDependency> getDependencies()
        Description copied from interface: SymbolDependencyContainer
        Gets the list of dependencies that this object introduces.

        A dependency is a dependency on another package that a Symbol or type requires. It is quite different from a reference since a reference only refers to a symbol; a reference provides no context as to whether or not a dependency is required or the dependency's coordinates.

        Specified by:
        getDependencies in interface SymbolDependencyContainer
        Returns:
        Returns the dependencies.
      • equals

        public boolean equals​(java.lang.Object o)
      • hashCode

        public int hashCode()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getProperties

        public java.util.Map<java.lang.String,​java.lang.Object> getProperties()
        Gets the additional properties of the object.
        Returns:
        Returns a map of additional property strings.
      • getTypedProperties

        public java.util.Map<Property<?>,​java.lang.Object> getTypedProperties()
        Gets the additional typed properties of the object.
        Returns:
        Returns a map of additional typed properties.
      • getProperty

        public java.util.Optional<java.lang.Object> getProperty​(java.lang.String name)
        Gets a specific property if present.
        Parameters:
        name - Property to retrieve.
        Returns:
        Returns the optionally found property.
      • getProperty

        public <T> java.util.Optional<T> getProperty​(Property<T> property)
        Get a typed property if present.
        Type Parameters:
        T - value type of the property
        Parameters:
        property - property key to get by exact reference identity.
        Returns:
        Returns the optionally found property.
      • getProperty

        public <T> java.util.Optional<T> getProperty​(java.lang.String name,
                                                     java.lang.Class<T> type)
        Gets an additional property of a specific type.
        Type Parameters:
        T - Type of value to expect.
        Parameters:
        name - Name of the property to get.
        type - Type of value to expect.
        Returns:
        Returns a map of additional property strings.
        Throws:
        java.lang.IllegalArgumentException - if the value is not of the given type.
      • expectProperty

        public java.lang.Object expectProperty​(java.lang.String name)
        Gets a specific additional property or throws if missing.
        Parameters:
        name - Property to retrieve.
        Returns:
        Returns the found property.
        Throws:
        java.lang.IllegalArgumentException - if the property is not present.
      • expectProperty

        public <T> T expectProperty​(java.lang.String name,
                                    java.lang.Class<T> type)
        Gets a specific additional property or throws if missing or if the property is not an instance of the given type.
        Type Parameters:
        T - Type of value to expect.
        Parameters:
        name - Property to retrieve.
        type - Type of value to expect.
        Returns:
        Returns the found property.
        Throws:
        java.lang.IllegalArgumentException - if the property is not present.
        java.lang.IllegalArgumentException - if the value is not of the given type.
      • expectProperty

        public <T> T expectProperty​(Property<T> property)
        Get a property and throw if it isn't present.
        Type Parameters:
        T - value type of the property.
        Parameters:
        property - property key to get by exact reference identity.
        Throws:
        java.lang.IllegalArgumentException - if the property isn't found.