Class ConfigurationPath


  • public class ConfigurationPath
    extends java.lang.Object
    Manages configuration file paths for JLine applications.

    This class provides a way to manage application and user configuration directories and locate configuration files within them. It follows the common pattern of looking for configuration files first in the user's configuration directory, then falling back to the application's configuration directory.

    This class also supports loading configuration files from the classpath. The application configuration directory can be a classpath resource path, which will be resolved using the ClasspathResourceUtil class.

    • Constructor Summary

      Constructors 
      Constructor Description
      ConfigurationPath​(java.lang.String classpathResource, java.nio.file.Path userConfig)
      Configuration class constructor with classpath resource support.
      ConfigurationPath​(java.nio.file.Path appConfig, java.nio.file.Path userConfig)
      Configuration class constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static ConfigurationPath fromClasspath​(java.lang.String classpathResource)
      Creates a ConfigurationPath from a classpath resource.
      java.nio.file.Path getConfig​(java.lang.String name)
      Search configuration file first from userConfig, then appConfig directory, and finally from classpath.
      java.nio.file.Path getUserConfig​(java.lang.String name)
      Search configuration file from userConfig directory.
      java.nio.file.Path getUserConfig​(java.lang.String name, boolean create)
      Search configuration file from userConfig directory.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ConfigurationPath

        public ConfigurationPath​(java.nio.file.Path appConfig,
                                 java.nio.file.Path userConfig)
        Configuration class constructor.
        Parameters:
        appConfig - Application configuration directory
        userConfig - User private configuration directory
      • ConfigurationPath

        public ConfigurationPath​(java.lang.String classpathResource,
                                 java.nio.file.Path userConfig)
        Configuration class constructor with classpath resource support.
        Parameters:
        classpathResource - Classpath resource path (e.g., "/nano")
        userConfig - User private configuration directory
    • Method Detail

      • getConfig

        public java.nio.file.Path getConfig​(java.lang.String name)
        Search configuration file first from userConfig, then appConfig directory, and finally from classpath. Returns null if file is not found.
        Parameters:
        name - Configuration file name.
        Returns:
        Configuration file.
      • getUserConfig

        public java.nio.file.Path getUserConfig​(java.lang.String name)
                                         throws java.io.IOException
        Search configuration file from userConfig directory. Returns null if file is not found.
        Parameters:
        name - Configuration file name.
        Returns:
        Configuration file.
        Throws:
        java.io.IOException - When we do not have read access to the file or directory.
      • getUserConfig

        public java.nio.file.Path getUserConfig​(java.lang.String name,
                                                boolean create)
                                         throws java.io.IOException
        Search configuration file from userConfig directory. Returns null if file is not found.
        Parameters:
        name - Configuration file name
        create - When true configuration file is created if not found.
        Returns:
        Configuration file.
        Throws:
        java.io.IOException - When we do not have read/write access to the file or directory.
      • fromClasspath

        public static ConfigurationPath fromClasspath​(java.lang.String classpathResource)
        Creates a ConfigurationPath from a classpath resource.
        Parameters:
        classpathResource - The classpath resource path (e.g., "/nano")
        Returns:
        A ConfigurationPath that will look for resources in the specified classpath location