Class AbstractSingleIncludeSourcePathSourceProvider

  • All Implemented Interfaces:
    SourcePathProvider, SourceProvider
    Direct Known Subclasses:
    SingleIncludeSourcePathNonRelativeSourceProvider

    public abstract class AbstractSingleIncludeSourcePathSourceProvider
    extends AbstractSourcePathSourceProvider
    Abstract class to be extended by source provider implementations that include a single file only once and use source path.

    The implementations should not override the methods get() but should implement the abstract methods getSource(). The method getSource() is invoked only when it is ensured that the source was not yet included.

    Author:
    Peter Verhas
    • Constructor Detail

      • AbstractSingleIncludeSourcePathSourceProvider

        public AbstractSingleIncludeSourcePathSourceProvider()
    • Method Detail

      • getSingleInclude

        public SingleIncludeChecker getSingleInclude()
        Returns:
        the actual value of the single include checker
      • setSingleInclude

        public void setSingleInclude​(SingleIncludeChecker singleInclude)
        This setter can be called if the BasicSingleIncludeChecker as implementation is not appropriate. The default constructor will create one such object but later dependency injection can insert any object implementing the SingleIncludeChecker interface.

        This method allows configuration of these source providers in a DI container.

        Parameters:
        singleInclude - to be injected by the container if there is any
      • get

        public final SourceReader get​(java.lang.String sourceName)
                               throws java.io.IOException
        Description copied from interface: SourceProvider
        Get a reader to a source when there is no referencing source. This is the main source.
        Specified by:
        get in interface SourceProvider
        Specified by:
        get in class AbstractSourceProvider
        Parameters:
        sourceName - the name of the source
        Returns:
        reader reading the source file.
        Throws:
        java.io.IOException - in case of exception
      • get

        public final SourceReader get​(java.lang.String sourceName,
                                      java.lang.String referencingSource)
                               throws java.io.IOException
        Description copied from interface: SourceProvider
        Get a reader to a source specifying the source that references this source.
        Specified by:
        get in interface SourceProvider
        Specified by:
        get in class AbstractSourceProvider
        Parameters:
        sourceName - the name of the source to get the reader to.
        referencingSource - the name of the source that is referencing the source to read.
        Returns:
        return value
        Throws:
        java.io.IOException - in case of exception
      • getSource

        protected abstract SourceReader getSource​(java.lang.String sourceName)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • getSource

        protected abstract SourceReader getSource​(java.lang.String sourceName,
                                                  java.lang.String referencingSource)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • getKeyName

        protected abstract java.lang.String getKeyName​(java.lang.String sourceName)
      • getKeyName

        protected abstract java.lang.String getKeyName​(java.lang.String sourceName,
                                                       java.lang.String referencingSource)