Class JsonPropertiesBuilder

  • 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 JsonPropertiesBuilder
    extends AbstractResourcePropertiesBuilder
    implements ResourceProperties.ResourcePropertiesBuilder
    Implementation of the ResourceProperties.ResourcePropertiesBuilder interface with support of so called "JSON properties" (or just "properties"). For JSON, see "https://en.wikipedia.org/wiki/JSON".
    See Also:
    Serialized Form
    • Constructor Detail

      • JsonPropertiesBuilder

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

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

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

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

        public JsonPropertiesBuilder​(java.io.File aFile)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.io.File aFile,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.io.File aFile,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads or seeks the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.io.File aFile,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads or seeks the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.String aFilePath)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.String aFilePath,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.lang.Class<?> aResourceClass,
                                     java.lang.String aFilePath,
                                     org.refcodes.runtime.ConfigLocator aConfigLocator,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.net.URL aUrl)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.net.URL aUrl,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Loads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.io.InputStream aInputStream)
                              throws java.io.IOException,
                                     java.text.ParseException
        Reads the JSON 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.
      • JsonPropertiesBuilder

        public JsonPropertiesBuilder​(java.io.InputStream aInputStream,
                                     char... aDelimiters)
                              throws java.io.IOException,
                                     java.text.ParseException
        Reads the JSON 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

      • createCanonicalMapFactory

        protected org.refcodes.structure.ext.factory.CanonicalMapFactory createCanonicalMapFactory​()
        Abstract method to be implemented by the sub-classes returning the concrete CanonicalMapFactory responsible to fabricate the CanonicalMap instances as of the required notation.
        Specified by:
        createCanonicalMapFactory in class AbstractResourcePropertiesBuilder
        Returns:
        The CanonicalMapFactory supporting the required notation.