Class TomlProperties

  • All Implemented Interfaces:
    org.refcodes.mixin.AnnotatorAccessor, org.refcodes.mixin.DelimiterAccessor, org.refcodes.mixin.Dumpable, org.refcodes.mixin.EmptyAccessor, org.refcodes.mixin.TypeAccessor<String>, Properties, ResourceProperties, org.refcodes.struct.CanonicalMap, org.refcodes.struct.Containable, org.refcodes.struct.Dictionary<String,​String>, org.refcodes.struct.InterOperableMap<String>, org.refcodes.struct.Keys<String,​String>, org.refcodes.struct.PathMap<String>

    public class TomlProperties
    extends AbstractResourceProperties
    implements ResourceProperties
    Implementation of the ResourceProperties interface with support of so called "TOML properties". For TOML properties, see "https://en.wikipedia.org/wiki/TOML"
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  TomlProperties.TomlPropertiesFactory
      • Nested classes/interfaces inherited from interface org.refcodes.mixin.AnnotatorAccessor

        org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B extends org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B>>, org.refcodes.mixin.AnnotatorAccessor.AnnotatorMutator, org.refcodes.mixin.AnnotatorAccessor.AnnotatorProperty
      • Nested classes/interfaces inherited from interface org.refcodes.struct.CanonicalMap

        org.refcodes.struct.CanonicalMap.CanonicalMapBuilder, org.refcodes.struct.CanonicalMap.MutableCanonicalMap
      • Nested classes/interfaces inherited from interface org.refcodes.mixin.DelimiterAccessor

        org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B extends org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B>>, org.refcodes.mixin.DelimiterAccessor.DelimiterMutator, org.refcodes.mixin.DelimiterAccessor.DelimiterProperty
      • Nested classes/interfaces inherited from interface org.refcodes.struct.Dictionary

        org.refcodes.struct.Dictionary.MutableDictionary<K extends Object,​V extends Object>
      • Nested classes/interfaces inherited from interface org.refcodes.mixin.EmptyAccessor

        org.refcodes.mixin.EmptyAccessor.EmptyMutator, org.refcodes.mixin.EmptyAccessor.EmptyProperty
      • Nested classes/interfaces inherited from interface org.refcodes.struct.InterOperableMap

        org.refcodes.struct.InterOperableMap.InterOperableMapBuilder<T extends Object>, org.refcodes.struct.InterOperableMap.MutableInterOperableMap<T extends Object>
      • Nested classes/interfaces inherited from interface org.refcodes.struct.Keys

        org.refcodes.struct.Keys.MutableKeys<K extends Object,​V extends Object>, org.refcodes.struct.Keys.MutableValues<K extends Object,​V extends Object>
      • Nested classes/interfaces inherited from interface org.refcodes.struct.PathMap

        org.refcodes.struct.PathMap.MutablePathMap<T extends Object>, org.refcodes.struct.PathMap.PathMapBuilder<T extends Object>
      • Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor

        org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,​B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,​B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      TomlProperties​(File aFile)
      Loads the TOML Properties from the given File.
      TomlProperties​(File aFile, char... aDelimiters)
      Loads the TOML Properties from the given File.
      TomlProperties​(File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator)
      Loads or seeks the TOML Properties from the given File.
      TomlProperties​(File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
      Loads or seeks the TOML Properties from the given File.
      TomlProperties​(InputStream aInputStream)
      Reads the TOML Properties from the given InputStream.
      TomlProperties​(InputStream aInputStream, char... aDelimiters)
      Reads the TOML Properties from the given InputStream.
      TomlProperties​(Class<?> aResourceClass, String aFilePath)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(Class<?> aResourceClass, String aFilePath, char... aDelimiters)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(Class<?> aResourceClass, String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(Class<?> aResourceClass, String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(Object aObj)
      Create a TomlProperties instance containing the elements as of PathMap.MutablePathMap.insert(Object) using the default path delimiter "/" (Delimiter.PATH) for the path declarations: "Inspects the given object and adds all elements found in the given object.
      TomlProperties​(String aFilePath)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(String aFilePath, char... aDelimiters)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
      Loads the TOML Properties from the given file's path.
      TomlProperties​(URL aUrl)
      Loads the TOML Properties from the given URL.
      TomlProperties​(URL aUrl, char... aDelimiters)
      Loads the TOML Properties from the given URL.
      TomlProperties​(Map<?,​?> aProperties)
      Create a TomlProperties instance containing the elements of the provided Map instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
      TomlProperties​(Properties aProperties)
      Create a TomlProperties instance containing the elements of the provided Properties instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
      TomlProperties​(Properties.PropertiesBuilder aProperties)
      Create a TomlProperties instance containing the elements of the provided Properties.PropertiesBuilder instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean containsKey​(Object aKey)
      String get​(Object aKey)
      char getDelimiter()
      Returns the default path delimiter as of Delimiter.PATH.
      Class<String> getType()
      boolean isEmpty()
      Set<String> keySet()
      Properties reload()
      Properties reload​(ReloadMode aReloadMode)
      Properties retrieveFrom​(String aFromPath)
      Properties retrieveTo​(String aToPath)
      int size()
      Object toDataStructure​(String aFromPath)
      Collection<String> values()
      • Methods inherited from interface org.refcodes.struct.CanonicalMap

        asArray, asArray, asArray, asArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asByteArray, asByteArray, asByteArray, asByteArray, asCharArray, asCharArray, asCharArray, asCharArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asIntArray, asIntArray, asIntArray, asIntArray, asLongArray, asLongArray, asLongArray, asLongArray, asShortArray, asShortArray, asShortArray, asShortArray, queryBetween, toMap, toProperties
      • Methods inherited from interface org.refcodes.mixin.Dumpable

        toDump, toDump, toPrintable
      • Methods inherited from interface org.refcodes.struct.InterOperableMap

        getBoolean, getBoolean, getBoolean, getBoolean, getBoolean, getBooleanOr, getBooleanOr, getBooleanOr, getBooleanOr, getBooleanOr, getByte, getByte, getByte, getByte, getByte, getByteOr, getByteOr, getByteOr, getByteOr, getByteOr, getChar, getChar, getChar, getChar, getChar, getCharOr, getCharOr, getCharOr, getCharOr, getCharOr, getClass, getClass, getClass, getClass, getClass, getClassOr, getClassOr, getClassOr, getClassOr, getClassOr, getDouble, getDouble, getDouble, getDouble, getDouble, getDoubleOr, getDoubleOr, getDoubleOr, getDoubleOr, getDoubleOr, getEnum, getEnum, getEnum, getEnum, getEnum, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getFloat, getFloat, getFloat, getFloat, getFloat, getFloatOr, getFloatOr, getFloatOr, getFloatOr, getFloatOr, getInt, getInt, getInt, getInt, getInt, getIntOr, getIntOr, getIntOr, getIntOr, getIntOr, getLong, getLong, getLong, getLong, getLong, getLongOr, getLongOr, getLongOr, getLongOr, getLongOr, getShort, getShort, getShort, getShort, getShort, getShortOr, getShortOr, getShortOr, getShortOr, getShortOr, getString, getString, getString, getString, getString, getStringOr, getStringOr, getStringOr, getStringOr, getStringOr
      • Methods inherited from interface org.refcodes.struct.Keys

        getOr, use
      • Methods inherited from interface org.refcodes.struct.PathMap

        children, children, children, children, children, children, containsKey, containsKey, containsKey, dirs, dirs, dirs, dirs, dirs, dirs, findPaths, fromExternalPath, get, get, get, getArray, getArray, getArray, getArray, getArray, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getRootPath, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, hasChildren, hasChildren, hasChildren, hasChildren, hasChildren, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasParentPath, hasPath, hasPath, hasPath, hasPath, hasSubDirs, hasSubDirs, hasSubDirs, hasSubDirs, hasValue, hasValue, hasValue, hasValue, hasValue, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, isArray, isArray, isArray, isArray, isArray, isArray, isChild, isChild, isChild, isChild, isDir, isDir, isDir, isDir, isDir, isEqualTo, isIndexDir, isIndexDir, isIndexDir, isIndexDir, isIndexDir, isLeaf, isLeaf, isLeaf, isLeaf, isLeaf, isRootPath, keySet, keySet, keySet, keySet, keySet, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, leaves, leaves, leaves, leaves, leaves, leaves, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, paths, paths, paths, paths, paths, paths, queryPaths, queryPaths, queryPaths, queryPaths, queryPaths, queryPaths, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, toDataStructure, toExternalPath, toInstance, toInstance, toLeaf, toMap, toNormalizedPath, toParentPath, toPath, toPath, toPath, toPath, toPathElements, toPathList, toPathStack, toPropertyPath, toType, toType, toType, toType, toType, toType, toType, toType
    • Constructor Detail

      • TomlProperties

        public TomlProperties​(File aFile)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given File.
        Parameters:
        aFile - The File from which to load the properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(File aFile,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given File.
        Parameters:
        aFile - The File from which to load the properties.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(File aFile,
                              org.refcodes.runtime.ConfigLocator aConfigLocator)
                       throws IOException,
                              ParseException
        Loads or seeks the TOML Properties from the given File. A provided ConfigLocator describes the locations to additional crawl for the desired file.
        Parameters:
        aFile - The File from which to load the properties.
        aConfigLocator - The ConfigLocator describes the locations to additional crawl for the desired file.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(File aFile,
                              org.refcodes.runtime.ConfigLocator aConfigLocator,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads or seeks the TOML Properties from the given File. A provided ConfigLocator describes the locations to additional crawl for the desired file.
        Parameters:
        aFile - The File from which to load the properties.
        aConfigLocator - The ConfigLocator describes the locations to additional crawl for the desired file.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(String aFilePath)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path.
        Parameters:
        aFilePath - The path to the file from which to load the properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(String aFilePath,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path.
        Parameters:
        aFilePath - The path to the file from which to load the properties.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(Class<?> aResourceClass,
                              String aFilePath)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path.
        Parameters:
        aResourceClass - The class which's class loader is to take care of loading the properties (from inside a JAR).
        aFilePath - The file path of the class's resources from which to load the properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(Class<?> aResourceClass,
                              String aFilePath,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path.
        Parameters:
        aResourceClass - The class which's class loader is to take care of loading the properties (from inside a JAR).
        aFilePath - The file path of the class's resources from which to load the properties.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(String aFilePath,
                              org.refcodes.runtime.ConfigLocator aConfigLocator)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path. A provided ConfigLocator describes the locations to additional crawl for the desired file.
        Parameters:
        aFilePath - The path to the file from which to load the properties.
        aConfigLocator - The ConfigLocator describes the locations to additional crawl for the desired file.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(String aFilePath,
                              org.refcodes.runtime.ConfigLocator aConfigLocator,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path. A provided ConfigLocator describes the locations to additional crawl for the desired file.
        Parameters:
        aFilePath - The path to the file from which to load the properties.
        aConfigLocator - The ConfigLocator describes the locations to additional crawl for the desired file.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(Class<?> aResourceClass,
                              String aFilePath,
                              org.refcodes.runtime.ConfigLocator aConfigLocator)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path. A provided ConfigLocator describes the locations to additional crawl for the desired file. Finally (if nothing else succeeds) the properties are loaded by the provided class's class loader which takes care of loading the properties (in case the file path is a relative path, also the absolute path with a prefixed path delimiter "/" is probed).
        Parameters:
        aResourceClass - The class which's class loader is to take care of loading the properties (from inside a JAR).
        aFilePath - The file path of the class's resources from which to load the properties.
        aConfigLocator - The ConfigLocator describes the locations to additional crawl for the desired file.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(Class<?> aResourceClass,
                              String aFilePath,
                              org.refcodes.runtime.ConfigLocator aConfigLocator,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given file's path. A provided ConfigLocator describes the locations to additional crawl for the desired file. Finally (if nothing else succeeds) the properties are loaded by the provided class's class loader which takes care of loading the properties (in case the file path is a relative path, also the absolute path with a prefixed path delimiter "/" is probed).
        Parameters:
        aResourceClass - The class which's class loader is to take care of loading the properties (from inside a JAR).
        aFilePath - The file path of the class's resources from which to load the properties.
        aConfigLocator - The ConfigLocator describes the locations to additional crawl for the desired file.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(URL aUrl)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given URL.
        Parameters:
        aUrl - The URL from which to read the properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(URL aUrl,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Loads the TOML Properties from the given URL.
        Parameters:
        aUrl - The URL from which to read the properties.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(InputStream aInputStream)
                       throws IOException,
                              ParseException
        Reads the TOML Properties from the given InputStream.
        Parameters:
        aInputStream - The InputStream from which to read the properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(InputStream aInputStream,
                              char... aDelimiters)
                       throws IOException,
                              ParseException
        Reads the TOML Properties from the given InputStream.
        Parameters:
        aInputStream - The InputStream from which to read the properties.
        aDelimiters - The path delimiters to be used when parsing the source's properties.
        Throws:
        IOException - thrown in case accessing or processing the properties file failed.
        ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlProperties

        public TomlProperties​(Map<?,​?> aProperties)
        Create a TomlProperties instance containing the elements of the provided Map instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
        Parameters:
        aProperties - the properties to be added.
      • TomlProperties

        public TomlProperties​(Object aObj)
        Create a TomlProperties instance containing the elements as of PathMap.MutablePathMap.insert(Object) using the default path delimiter "/" (Delimiter.PATH) for the path declarations: "Inspects the given object and adds all elements found in the given object. Elements of type Map, Collection and arrays are identified and handled as of their type: The path for each value in a Map is appended with its according key. The path for each value in a Collection or array is appended with its according index of occurrence (in case of a List or an array, its actual index). In case of reflection, the path for each member is appended with its according mamber's name. All elements (e.g. the members and values) are inspected recursively which results in the according paths of the terminating values."
        Parameters:
        aObj - The object from which the elements are to be added.
      • TomlProperties

        public TomlProperties​(Properties aProperties)
        Create a TomlProperties instance containing the elements of the provided Properties instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
        Parameters:
        aProperties - the properties to be added.