Class SymbolPath

  • All Implemented Interfaces:
    java.lang.Comparable<SymbolPath>

    public class SymbolPath
    extends java.lang.Object
    implements java.lang.Comparable<SymbolPath>
    A convenience object for parsing a namespace path to a symbol.

    For example, if a SymbolPath is constructed with "foo::bar::baz", then "baz" is the name of a symbol in the "bar" namespace, which is in the "foo" namespace.

    • Constructor Summary

      Constructors 
      Constructor Description
      SymbolPath​(SymbolPath parent, java.lang.String name)
      Creates a Symbol from a parent SymbolPath and a symbol name.
      SymbolPath​(Symbol symbol)
      Constructs a new SymbolPath for the given symbol.
      SymbolPath​(Symbol symbol, boolean excludeLibrary)
      Constructs a new SymbolPath for the given symbol with the option to exclude a beginning library name.
      SymbolPath​(java.lang.String symbolPathString)
      Construct a SymbolPath from a string containing NAMESPACE_DELIMITER ("::") sequences to separate the namespace names.
      SymbolPath​(java.lang.String[] symbolPath)
      Construct a SymbolPath from an array of strings where each string is the name of a namespace in the symbol path.
      SymbolPath​(java.util.List<java.lang.String> symbolList)
      Construct a SymbolPath from a list of strings where each string is the name of a namespace in the symbol path.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      SymbolPath append​(SymbolPath path)
      Creates a new SymbolPath composed of the list of names in this path followed by the list of names in the given path.
      java.lang.String[] asArray()
      Returns an array of names of the symbols in the symbol path, starting with the name just below the global namespace.
      java.util.List<java.lang.String> asList()
      Returns a list of names of the symbols in the symbol path, starting with the name just below the global namespace.
      int compareTo​(SymbolPath o)  
      boolean containsPathEntry​(java.lang.String text)
      Returns true if this path contains any path entry matching the given text
      boolean equals​(java.lang.Object obj)  
      java.lang.String getName()
      Returns the name of the symbol;
      SymbolPath getParent()
      Returns the SymbolPath for the parent namespace or null if the parent is the global space.
      java.lang.String getParentPath()
      Returns null if the parent is null or global; otherwise returns the path as a string of the parent namespace path.
      java.lang.String getPath()
      Returns the full symbol path as a string.
      int hashCode()  
      boolean matchesPathOf​(Symbol s)
      A convenience method to check if the given symbol's symbol path matches this path
      SymbolPath replaceInvalidChars()
      Returns a new SymbolPath in which invalid characters are replaced with underscores.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • SymbolPath

        public SymbolPath​(java.lang.String symbolPathString)
        Construct a SymbolPath from a string containing NAMESPACE_DELIMITER ("::") sequences to separate the namespace names. This is the only constructor that employs special string-based namespace parsing.
        Parameters:
        symbolPathString - the string to parse as a sequence of namespace names separated by "::".
      • SymbolPath

        public SymbolPath​(java.lang.String[] symbolPath)
        Construct a SymbolPath from an array of strings where each string is the name of a namespace in the symbol path.
        Parameters:
        symbolPath - the array of names of namespaces.
      • SymbolPath

        public SymbolPath​(java.util.List<java.lang.String> symbolList)
        Construct a SymbolPath from a list of strings where each string is the name of a namespace in the symbol path.
        Parameters:
        symbolList - the array of names of namespaces.
        Throws:
        java.lang.IllegalArgumentException - if the given list is null or empty.
      • SymbolPath

        public SymbolPath​(Symbol symbol)
        Constructs a new SymbolPath for the given symbol.
        Parameters:
        symbol - the symbol to get a SymbolPath for.
      • SymbolPath

        public SymbolPath​(Symbol symbol,
                          boolean excludeLibrary)
        Constructs a new SymbolPath for the given symbol with the option to exclude a beginning library name.
        Parameters:
        symbol - the symbol to get a SymbolPath for.
        excludeLibrary - if true, any library name at the front of the path will be removed.
      • SymbolPath

        public SymbolPath​(SymbolPath parent,
                          java.lang.String name)
        Creates a Symbol from a parent SymbolPath and a symbol name.
        Parameters:
        parent - the parent SymbolPath. Can be null if the name is in the global space.
        name - the name of the symbol. This can't be null;
    • Method Detail

      • replaceInvalidChars

        public SymbolPath replaceInvalidChars()
        Returns a new SymbolPath in which invalid characters are replaced with underscores.
        Returns:
        the new SymbolPath with replaced characters.
      • getName

        public java.lang.String getName()
        Returns the name of the symbol;
        Returns:
        the symbol name as string without any path information.
      • getParent

        public SymbolPath getParent()
        Returns the SymbolPath for the parent namespace or null if the parent is the global space.
        Returns:
        the SymbolPath for the parent namespace or null if the parent is the global space.
      • getParentPath

        public java.lang.String getParentPath()
        Returns null if the parent is null or global; otherwise returns the path as a string of the parent namespace path.
        Returns:
        the path of the parent namespace as string. Returns null if the parent is null or global.
      • getPath

        public java.lang.String getPath()
        Returns the full symbol path as a string.
        Returns:
        the SymbolPath for the complete name as string, including namespace.
      • append

        public SymbolPath append​(SymbolPath path)
        Creates a new SymbolPath composed of the list of names in this path followed by the list of names in the given path.
        Parameters:
        path - the path of names to append to this path.
        Returns:
        a new SymbolPath that appends the given path to this path.
      • containsPathEntry

        public boolean containsPathEntry​(java.lang.String text)
        Returns true if this path contains any path entry matching the given text
        Parameters:
        text - the text for which to search
        Returns:
        true if any path entry matches the given text
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • matchesPathOf

        public boolean matchesPathOf​(Symbol s)
        A convenience method to check if the given symbol's symbol path matches this path
        Parameters:
        s - the symbol to check
        Returns:
        true if the symbol paths match
      • asList

        public java.util.List<java.lang.String> asList()
        Returns a list of names of the symbols in the symbol path, starting with the name just below the global namespace.
        Returns:
        a list of names of the symbols in the symbol path.
      • asArray

        public java.lang.String[] asArray()
        Returns an array of names of the symbols in the symbol path, starting with the name just below the global namespace.
        Returns:
        an array of names of the symbols in the symbol path.
      • toString

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

        public int compareTo​(SymbolPath o)
        Specified by:
        compareTo in interface java.lang.Comparable<SymbolPath>