Class SourceFinder

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    public class SourceFinder
    extends java.lang.Object
    implements java.lang.AutoCloseable
    Class to open input streams on source files. It maintains a "source path", which is like a classpath, but for finding source files instead of class files.
    • Constructor Detail

      • SourceFinder

        public SourceFinder​(Project project)
    • Method Detail

      • getProject

        public Project getProject()
        Returns:
        Returns the project.
      • setSourceBaseList

        public void setSourceBaseList​(java.lang.Iterable<java.lang.String> sourceBaseList)
        Set the list of source directories.
      • openSource

        public java.io.InputStream openSource​(java.lang.String packageName,
                                              java.lang.String fileName)
                                       throws java.io.IOException
        Open an input stream on a source file in given package.
        Parameters:
        packageName - the name of the package containing the class whose source file is given
        fileName - the unqualified name of the source file
        Returns:
        an InputStream on the source file
        Throws:
        java.io.IOException - if a matching source file cannot be found
      • openSource

        public java.io.InputStream openSource​(SourceLineAnnotation source)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • findSourceFile

        public SourceFile findSourceFile​(java.lang.String packageName,
                                         java.lang.String fileName)
                                  throws java.io.IOException
        Open a source file in given package.
        Parameters:
        packageName - the name of the package containing the class whose source file is given
        fileName - the unqualified name of the source file
        Returns:
        the source file
        Throws:
        java.io.IOException - if a matching source file cannot be found
      • getPlatformName

        public static java.lang.String getPlatformName​(java.lang.String packageName,
                                                       java.lang.String fileName)
      • getCanonicalName

        public static java.lang.String getCanonicalName​(SourceLineAnnotation source)
      • getCanonicalName

        public static java.lang.String getCanonicalName​(java.lang.String packageName,
                                                        java.lang.String fileName)
      • getOrGuessSourceFile

        public static java.lang.String getOrGuessSourceFile​(SourceLineAnnotation source)
      • hasSourceFile

        public boolean hasSourceFile​(java.lang.String packageName,
                                     java.lang.String fileName)
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
      • getBase

        public java.util.Optional<java.net.URI> getBase​(SourceLineAnnotation sourceLineAnnotation)
      • getBase

        public java.util.Optional<java.net.URI> getBase​(java.lang.String fileName)