Class TomlPropertiesBuilder

  • All Implemented Interfaces:
    java.io.Flushable, java.util.Map<java.lang.String,T>, org.refcodes.component.Flushable, org.refcodes.component.Flushable.FlushBuilder<java.lang.String>, Properties, Properties.MutableProperties, Properties.PropertiesBuilder, ResourceProperties, ResourceProperties.MutableResoureProperties, ResourceProperties.ResourcePropertiesBuilder, org.refcodes.mixin.DelimiterAccessor, org.refcodes.mixin.Dumpable, org.refcodes.mixin.TypeAccessor<java.lang.String>, org.refcodes.structure.CanonicalMap, org.refcodes.structure.CanonicalMap.CanonicalMapBuilder, org.refcodes.structure.CanonicalMap.MutableCanonicalMap, org.refcodes.structure.Clearable, org.refcodes.structure.Containable, org.refcodes.structure.Dictionary<java.lang.String,T>, org.refcodes.structure.Dictionary.MutableDictionary<java.lang.String,T>, org.refcodes.structure.Dictionary.MutableDictionary.DictionaryBuilder<java.lang.String,T,org.refcodes.structure.PathMap.PathMapBuilder<T>>, org.refcodes.structure.Keys<java.lang.String,T>, org.refcodes.structure.Keys.MutableKeys<java.lang.String,T>, org.refcodes.structure.Keys.MutableValues<java.lang.String,T>, org.refcodes.structure.PathMap<java.lang.String>, org.refcodes.structure.PathMap.MutablePathMap<java.lang.String>, org.refcodes.structure.PathMap.PathMapBuilder<java.lang.String>, org.refcodes.structure.PropertiesAccessorMixin, org.refcodes.structure.PropertiesAccessorMixin.PropertiesBuilderMixin<java.lang.String>, org.refcodes.structure.PropertiesAccessorMixin.PropertiesMixin, org.refcodes.structure.PropertiesAccessorMixin.PropertiesMutatorMixin


    public class TomlPropertiesBuilder
    extends AbstractResourcePropertiesBuilder
    implements ResourceProperties.ResourcePropertiesBuilder
    Implementation of the ResourceProperties.ResourcePropertiesBuilder interface with support of so called "TOML properties". In addition, nested sections are supported: A section represents the first portion of a path and looks like such: [SectionA] ValueA=A This results in key/value property of: SectionA/ValueA=A [SectionA] ValueA=A [[SectionB]] ValueB=B SectionA/ValueA=A SectionA/SectionB/ValueB=B For TOML properties, see "https://en.wikipedia.org/wiki/TOML"
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  TomlPropertiesBuilder.TomlPropertiesBuilderFactory
      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface org.refcodes.structure.CanonicalMap

        org.refcodes.structure.CanonicalMap.CanonicalMapBuilder, org.refcodes.structure.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.structure.Dictionary

        org.refcodes.structure.Dictionary.MutableDictionary<K extends java.lang.Object,V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface org.refcodes.structure.Dictionary.MutableDictionary

        org.refcodes.structure.Dictionary.MutableDictionary.DictionaryBuilder<K extends java.lang.Object,V extends java.lang.Object,B extends org.refcodes.structure.Dictionary.MutableDictionary.DictionaryBuilder<K,V,B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.Flushable

        org.refcodes.component.Flushable.FlushBuilder<B extends org.refcodes.component.Flushable.FlushBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.structure.PathMap

        org.refcodes.structure.PathMap.MutablePathMap<T extends java.lang.Object>, org.refcodes.structure.PathMap.PathMapBuilder<T extends java.lang.Object>
      • Nested classes/interfaces inherited from interface org.refcodes.structure.PropertiesAccessorMixin

        org.refcodes.structure.PropertiesAccessorMixin.PropertiesBuilderMixin<T extends java.lang.Object>, org.refcodes.structure.PropertiesAccessorMixin.PropertiesMixin, org.refcodes.structure.PropertiesAccessorMixin.PropertiesMutatorMixin
      • Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor

        org.refcodes.mixin.TypeAccessor.TypeMutator<T extends java.lang.Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      TomlPropertiesBuilder​()
      Create an empty TomlPropertiesBuilder instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations.
      TomlPropertiesBuilder​(java.io.File aFile)
      Loads the TOML properties from the given File.
      TomlPropertiesBuilder​(java.io.File aFile, char... aDelimiters)
      Loads the TOML properties from the given File.
      TomlPropertiesBuilder​(java.io.File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator)
      Loads or seeks the TOML properties from the given File.
      TomlPropertiesBuilder​(java.io.File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
      Loads or seeks the TOML properties from the given File.
      TomlPropertiesBuilder​(java.io.InputStream aInputStream)
      Reads the TOML properties from the given InputStream.
      TomlPropertiesBuilder​(java.io.InputStream aInputStream, char... aDelimiters)
      Reads the TOML properties from the given InputStream.
      TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass, java.lang.String aFilePath)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, char... aDelimiters)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass, java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.Object aObj)
      Create a TomlPropertiesBuilder 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.
      TomlPropertiesBuilder​(java.lang.String aFilePath)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.String aFilePath, char... aDelimiters)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.lang.String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters)
      Loads the TOML properties from the given file's path.
      TomlPropertiesBuilder​(java.net.URL aUrl)
      Loads the TOML properties from the given URL.
      TomlPropertiesBuilder​(java.net.URL aUrl, char... aDelimiters)
      Loads the TOML properties from the given URL.
      TomlPropertiesBuilder​(java.util.Map<?,?> aProperties)
      Create a TomlPropertiesBuilder instance containing the elements of the provided Map instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
      TomlPropertiesBuilder​(Properties aProperties)
      Create a TomlPropertiesBuilder instance containing the elements of the provided Properties instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations
      TomlPropertiesBuilder​(Properties.PropertiesBuilder aProperties)
      Create a TomlPropertiesBuilder 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
      Properties loadFrom​(java.io.File aFile)
      Loads the properties from the given File.
      Properties loadFrom​(java.io.InputStream aInputStream)
      Loads the properties from the given InputStream.
      Properties loadFrom​(java.io.InputStream aInputStream, char... aDelimiters)
      Loads the properties from the given InputStream.
      void parseFrom​(java.lang.String aSerialized)
      Inspects the given serialized representation and adds all declared elements found.
      void saveTo​(java.io.OutputStream aOutputStream, java.lang.String aComment, char aDelimiter)
      Saves the properties to the given OutputStream using the provided delimiter as the destination's path delimiter.
      Properties seekFrom​(java.lang.Class<?> aResourceClass, java.lang.String aFilePath)
      Loads a properties file from the file path directly or (if not found) from the first folder containing such a file as of the specification for the ConfigLocator (if not provided, then ConfigLocator.ALL is assumed).
      Properties seekFrom​(java.lang.String aFilePath)
      Loads a properties file from the file path directly or (if not found) from the first folder containing such a file as of the specification for the ConfigLocator (if not provided, then ConfigLocator.ALL is assumed).
      • Methods inherited from class java.util.AbstractMap

        equals, hashCode, toString
      • Methods inherited from interface org.refcodes.structure.CanonicalMap

        toInstance, toInstance, toType, toType
      • Methods inherited from interface org.refcodes.structure.CanonicalMap.CanonicalMapBuilder

        withInsert, withInsert, withInsertFrom, withInsertTo
      • Methods inherited from interface org.refcodes.structure.CanonicalMap.MutableCanonicalMap

        insert, insert, insertFrom, insertTo, putAll, toDump, toSourceCode, toSourceCode
      • Methods inherited from interface org.refcodes.structure.Containable

        isEmpty, size
      • Methods inherited from interface org.refcodes.mixin.Dumpable

        toDump
      • Methods inherited from interface org.refcodes.component.Flushable

        flushUnchecked, isFlushable
      • Methods inherited from interface org.refcodes.component.Flushable.FlushBuilder

        withFlush, withFlushUnchecked
      • Methods inherited from class java.util.HashMap

        clear, clone, containsValue, entrySet, forEach, isEmpty, keySet, putAll, replaceAll, size, values
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.refcodes.structure.PathMap

        children, children, children, directories, directories, directories, directories, directories, fromExternalKey, get, get, getArray, getArray, getBoolean, getBoolean, getByte, getByte, getCharacter, getCharacter, getDouble, getDouble, getFloat, getFloat, getIndexes, getIndexes, getInteger, getInteger, getLong, getLong, getRootPath, getShort, getShort, hasChildren, hasChildren, hasChildren, hasIndexed, hasIndexed, hasParentPath, isArray, isArray, isArray, isArray, isArray, isChild, isChild, isChild, isDirectory, isDirectory, isDirectory, isDirectory, isIndexed, isIndexed, isPath, isRecord, isRecord, isRecord, isRecord, isRootPath, keySet, paths, paths, paths, paths, paths, queryPaths, records, records, records, records, records, toDataStructure, toDataStructure, toExternalKey, toMap, toNormalizedPath, toNormalizedPath, toParentPath, toPath, toPath
      • Methods inherited from interface org.refcodes.structure.PathMap.MutablePathMap

        insert, insert, insert, insert, insertFrom, insertFrom, insertTo, insertTo, put, putArray, putArray, remove, remove, removeAll, removeAll, removeFrom, removeFrom, removeFrom, removeFrom
      • Methods inherited from interface org.refcodes.structure.PathMap.PathMapBuilder

        withInsert, withInsert, withInsertFrom, withInsertTo
      • Methods inherited from class org.refcodes.structure.PathMapBuilderImpl

        compute, computeIfAbsent, computeIfPresent, containsKey, get, getDelimiter, getOrDefault, getType, merge, put, putIfAbsent, remove, remove, replace, replace, toDataStructure
      • Methods inherited from interface org.refcodes.structure.PropertiesAccessorMixin

        asArray, asArray, asArray, asArray, asArray, asArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asByteArray, asByteArray, asByteArray, asByteArray, asByteArray, asByteArray, asCharacterArray, asCharacterArray, asCharacterArray, asCharacterArray, asCharacterArray, asCharacterArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asIntegerArray, asIntegerArray, asIntegerArray, asIntegerArray, asIntegerArray, asIntegerArray, asLongArray, asLongArray, asLongArray, asLongArray, asLongArray, asLongArray, asShortArray, asShortArray, asShortArray, asShortArray, asShortArray, asShortArray, containsKey, get, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getCharacter, getCharacter, getCharacter, getDouble, getDouble, getDouble, getFloat, getFloat, getFloat, getInteger, getInteger, getInteger, getLong, getLong, getLong, getShort, getShort, getShort, use, useBoolean, useBoolean, useByte, useByte, useDouble, useDouble, useFloat, useFloat, useInteger, useInteger, useLong, useLong, useShort, useShort
      • Methods inherited from interface org.refcodes.structure.PropertiesAccessorMixin.PropertiesBuilderMixin

        withPut
      • Methods inherited from interface org.refcodes.structure.PropertiesAccessorMixin.PropertiesMutatorMixin

        put, put, putBoolean, putBoolean, putByte, putByte, putDouble, putDouble, putFloat, putFloat, putInteger, putInteger, putLong, putLong, putShort, putShort
    • Field Detail

      • COMMENTS

        public static final char[] COMMENTS
      • DELIMITERS

        public static final char[] DELIMITERS
    • Constructor Detail

      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​()
        Create an empty TomlPropertiesBuilder instance using the default path delimiter "/" (Delimiter.PATH) for the path declarations.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.Object aObj)
        Create a TomlPropertiesBuilder 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.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(Properties aProperties)
        Create a TomlPropertiesBuilder 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.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.util.Map<?,?> aProperties)
        Create a TomlPropertiesBuilder 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.
      • TomlPropertiesBuilder

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

        public TomlPropertiesBuilder​(java.io.File aFile,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.io.File aFile,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.io.File aFile,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.String aFilePath)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.String aFilePath,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

        public TomlPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

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

        public TomlPropertiesBuilder​(java.net.URL aUrl,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • TomlPropertiesBuilder

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

        public TomlPropertiesBuilder​(java.io.InputStream aInputStream,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.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:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
    • Method Detail

      • parseFrom

        public void parseFrom​(java.lang.String aSerialized)
                       throws java.text.ParseException
        Inspects the given serialized representation and adds all declared elements found. Unmarshaled 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). The default implementation uses the hook method ResourceProperties.MutableResoureProperties.loadFrom(InputStream, char...) to finally load and parse the properties.
        Specified by:
        parseFrom in interface ResourceProperties.MutableResoureProperties
        Parameters:
        aSerialized - The serialized representation which is to be parsed for the therein declared elements being added with their according determined paths.
        Throws:
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • seekFrom

        public Properties seekFrom​(java.lang.String aFilePath)
                            throws java.io.IOException,
                                   java.text.ParseException
        Loads a properties file from the file path directly or (if not found) from the first folder containing such a file as of the specification for the ConfigLocator (if not provided, then ConfigLocator.ALL is assumed). The default implementation uses the hook method ResourceProperties.MutableResoureProperties.loadFrom(InputStream, char...) to finally load and parse the properties.
        Specified by:
        seekFrom in interface ResourceProperties.MutableResoureProperties
        Parameters:
        aFilePath - The file path from which to load the properties.
        Returns:
        The Properties as loaded from the resource and applied to this instance.
        Throws:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • seekFrom

        public Properties seekFrom​(java.lang.Class<?> aResourceClass,
                                   java.lang.String aFilePath)
                            throws java.io.IOException,
                                   java.text.ParseException
        Loads a properties file from the file path directly or (if not found) from the first folder containing such a file as of the specification for the ConfigLocator (if not provided, then ConfigLocator.ALL is assumed). 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). The default implementation uses the hook method ResourceProperties.MutableResoureProperties.loadFrom(InputStream, char...) to finally load and parse the properties.
        Specified by:
        seekFrom in interface ResourceProperties.MutableResoureProperties
        Parameters:
        aResourceClass - The class which's class loader is to take care of loading the properties (from inside a JAR).
        aFilePath - The file path from which to load the properties.
        Returns:
        The Properties as loaded from the resource and applied to this instance.
        Throws:
        java.io.IOException - thrown in case accessing or processing the properties file failed.
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • loadFrom

        public Properties loadFrom​(java.io.InputStream aInputStream,
                                   char... aDelimiters)
                            throws java.io.IOException,
                                   java.text.ParseException
        Loads the properties from the given InputStream. Save them using the method ResourceProperties.MutableResoureProperties.saveTo(OutputStream). This is the hook-method of the default implementation for loading the properties. In case you want to implement ResourceProperties which support other notations than the properties notation (path=value), then you overwrite this method in your implementation accordingly.
        Specified by:
        loadFrom in interface ResourceProperties.MutableResoureProperties
        Parameters:
        aInputStream - The InputStream from which to load the properties.
        aDelimiters - The path delimiters to be used when parsing the source's properties (in case the the serialized format supports / requires the such).
        Returns:
        The Properties as loaded from the resource and applied to this instance.
        Throws:
        java.io.IOException - thrown in case loading the properties failed
        java.text.ParseException - Signals that an error has been reached unexpectedly while parsing the data to be loaded.
      • saveTo

        public void saveTo​(java.io.OutputStream aOutputStream,
                           java.lang.String aComment,
                           char aDelimiter)
                    throws java.io.IOException
        Saves the properties to the given OutputStream using the provided delimiter as the destination's path delimiter. Load them via ResourceProperties.MutableResoureProperties.loadFrom(InputStream, char...) This is the hook-method of the default implementation for writing (saving) the properties. In case you want to implement ResourceProperties which support other notations than the properties notation (path=value), then you overwrite this method in your implementation accordingly.
        Specified by:
        saveTo in interface ResourceProperties.MutableResoureProperties
        Parameters:
        aOutputStream - The OutputStream to which to save the properties to.
        aComment - The description for the properties file.
        aDelimiter - The path delimiter to be used when writing out the properties to the destination (in case the the serialized format supports / requires the such).
        Throws:
        java.io.IOException - thrown in case saving the properties failed