org.refcodes.mixin.AnnotatorAccessor
, org.refcodes.mixin.DelimiterAccessor
, org.refcodes.mixin.Dumpable
, org.refcodes.mixin.TypeAccessor<String>
, Properties
, ResourceProperties
, org.refcodes.struct.CanonicalMap
, org.refcodes.struct.Containable
, org.refcodes.struct.Dictionary<String,T>
, org.refcodes.struct.InterOperableMap<String>
, org.refcodes.struct.Keys<String,T>
, org.refcodes.struct.PathMap<String>
public class JsonProperties extends AbstractResourceProperties implements ResourceProperties
ResourceProperties
interface with support of so
called "JSON properties". For JSON properties, see
"https://en.wikipedia.org/wiki/JSON"Modifier and Type | Class | Description |
---|---|---|
static class |
JsonProperties.JsonPropertiesFactory |
The
JsonProperties.JsonPropertiesFactory represents a
ResourcePropertiesFactory creating instances of type
JsonProperties . |
org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B extends org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B>>, org.refcodes.mixin.AnnotatorAccessor.AnnotatorMutator, org.refcodes.mixin.AnnotatorAccessor.AnnotatorProperty
org.refcodes.struct.CanonicalMap.CanonicalMapBuilder, org.refcodes.struct.CanonicalMap.MutableCanonicalMap
org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B extends org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B>>, org.refcodes.mixin.DelimiterAccessor.DelimiterMutator, org.refcodes.mixin.DelimiterAccessor.DelimiterProperty
org.refcodes.struct.Dictionary.MutableDictionary<K extends Object,V extends Object>
org.refcodes.struct.InterOperableMap.InterOperableMapBuilder<T extends Object>, org.refcodes.struct.InterOperableMap.MutableInterOperableMap<T extends Object>
org.refcodes.struct.Keys.MutableKeys<K extends Object,V extends Object>, org.refcodes.struct.Keys.MutableValues<K extends Object,V extends Object>
org.refcodes.struct.PathMap.MutablePathMap<T extends Object>, org.refcodes.struct.PathMap.PathMapBuilder<T extends Object>
Properties.MutableProperties, Properties.PropertiesBuilder
ResourceProperties.MutableResoureProperties, ResourceProperties.ResourcePropertiesBuilder
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>
_properties
DEFAULT_COMMENT
Constructor | Description |
---|---|
JsonProperties(File aFile) |
Loads the JSON Properties from the given
File . |
JsonProperties(File aFile,
char... aDelimiters) |
Loads the JSON Properties from the given
File . |
JsonProperties(File aFile,
org.refcodes.runtime.ConfigLocator aConfigLocator) |
Loads or seeks the JSON Properties from the given
File . |
JsonProperties(File aFile,
org.refcodes.runtime.ConfigLocator aConfigLocator,
char... aDelimiters) |
Loads or seeks the JSON Properties from the given
File . |
JsonProperties(InputStream aInputStream) |
Reads the JSON Properties from the given
InputStream . |
JsonProperties(InputStream aInputStream,
char... aDelimiters) |
Reads the JSON Properties from the given
InputStream . |
JsonProperties(Class<?> aResourceClass,
String aFilePath) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(Class<?> aResourceClass,
String aFilePath,
char... aDelimiters) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(Class<?> aResourceClass,
String aFilePath,
org.refcodes.runtime.ConfigLocator aConfigLocator) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(Class<?> aResourceClass,
String aFilePath,
org.refcodes.runtime.ConfigLocator aConfigLocator,
char... aDelimiters) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(Object aObj) |
Create a
JsonProperties 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. |
JsonProperties(String aFilePath) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(String aFilePath,
char... aDelimiters) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(String aFilePath,
org.refcodes.runtime.ConfigLocator aConfigLocator) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(String aFilePath,
org.refcodes.runtime.ConfigLocator aConfigLocator,
char... aDelimiters) |
Loads the JSON Properties from the given file's path.
|
JsonProperties(URL aUrl) |
Loads the JSON Properties from the given
URL . |
JsonProperties(URL aUrl,
char... aDelimiters) |
Loads the JSON Properties from the given
URL . |
JsonProperties(Map<?,?> aProperties) |
Create a
JsonProperties instance containing the elements of the
provided Map instance using the default path delimiter "/"
(Delimiter.PATH ) for the path declarations |
JsonProperties(Properties aProperties) |
Create a
JsonProperties instance containing the elements of the
provided Properties instance using the default path delimiter "/"
(Delimiter.PATH ) for the path declarations |
JsonProperties(Properties.PropertiesBuilder aProperties) |
Create a
JsonProperties instance containing the elements of the
provided Properties.PropertiesBuilder instance using the default path
delimiter "/" (Delimiter.PATH ) for the path declarations |
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() |
Reloads the
ResourceProperties from the resource to which the
ResourceProperties are attached to (such as a File as of
ResourceProperties.MutableResoureProperties.loadFrom(File) or
ResourceProperties.MutableResoureProperties.saveTo(File) ). |
Properties |
reload(ReloadMode aReloadMode) |
Reloads the
ResourceProperties from the resource to which the
ResourceProperties are attached to (such as a File as of
ResourceProperties.MutableResoureProperties.loadFrom(File) or
ResourceProperties.MutableResoureProperties.saveTo(File) ). |
Properties |
retrieveFrom(String aFromPath) |
|
Properties |
retrieveTo(String aToPath) |
|
int |
size() |
|
Object |
toDataStructure(String aFromPath) |
|
Collection<String> |
values() |
toSerialized, toSerialized
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
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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, 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, toPathElements, toPathList, toPathStack, toPropertyPath, toType, toType
containsValue, getAnnotator, getDir, getDir, getDir, getDir, getDir, getDirAt, getDirAt, getDirAt, getDirAt, getDirAt, getDirAt, query, query, query, query, query, queryBetween, queryBetween, queryBetween, queryBetween, queryBetween, queryFrom, queryFrom, queryFrom, queryFrom, queryFrom, queryFrom, queryTo, queryTo, queryTo, queryTo, queryTo, queryTo, retrieveBetween, retrieveBetween, retrieveBetween, retrieveBetween, retrieveBetween, retrieveFrom, retrieveFrom, retrieveFrom, retrieveFrom, retrieveTo, retrieveTo, retrieveTo, retrieveTo
toSerialized, toSerialized, toSerialized, toSerialized
public JsonProperties(Object aObj)
JsonProperties
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."aObj
- The object from which the elements are to be added.public JsonProperties(Properties aProperties)
JsonProperties
instance containing the elements of the
provided Properties
instance using the default path delimiter "/"
(Delimiter.PATH
) for the path declarationsaProperties
- the properties to be added.public JsonProperties(Properties.PropertiesBuilder aProperties)
JsonProperties
instance containing the elements of the
provided Properties.PropertiesBuilder
instance using the default path
delimiter "/" (Delimiter.PATH
) for the path declarationsaProperties
- the properties to be added.public JsonProperties(Map<?,?> aProperties)
JsonProperties
instance containing the elements of the
provided Map
instance using the default path delimiter "/"
(Delimiter.PATH
) for the path declarationsaProperties
- the properties to be added.public JsonProperties(File aFile) throws IOException, ParseException
File
.aFile
- The File
from which to load the properties.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.public JsonProperties(File aFile, char... aDelimiters) throws IOException, ParseException
File
.aFile
- The File
from which to load the properties.aDelimiters
- The path delimiters to be used when parsing the
source's properties.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.public JsonProperties(File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator) throws IOException, ParseException
File
. A
provided ConfigLocator
describes the locations to additional
crawl for the desired file.aFile
- The File
from which to load the properties.aConfigLocator
- The ConfigLocator
describes the locations
to additional crawl for the desired file.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.public JsonProperties(File aFile, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws IOException, ParseException
File
. A
provided ConfigLocator
describes the locations to additional
crawl for the desired file.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.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.public JsonProperties(String aFilePath) throws IOException, ParseException
aFilePath
- The path to the file from which to load the properties.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.public JsonProperties(String aFilePath, char... aDelimiters) throws IOException, ParseException
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.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.public JsonProperties(Class<?> aResourceClass, String aFilePath) throws IOException, ParseException
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.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.public JsonProperties(Class<?> aResourceClass, String aFilePath, char... aDelimiters) throws IOException, ParseException
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.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.public JsonProperties(String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator) throws IOException, ParseException
ConfigLocator
describes the locations to additional crawl for the
desired file.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.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.public JsonProperties(String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws IOException, ParseException
ConfigLocator
describes the locations to additional crawl for the
desired file.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.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.public JsonProperties(Class<?> aResourceClass, String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator) throws IOException, ParseException
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).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.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.public JsonProperties(Class<?> aResourceClass, String aFilePath, org.refcodes.runtime.ConfigLocator aConfigLocator, char... aDelimiters) throws IOException, ParseException
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).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.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.public JsonProperties(URL aUrl) throws IOException, ParseException
URL
.aUrl
- The URL
from which to read the properties.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.public JsonProperties(URL aUrl, char... aDelimiters) throws IOException, ParseException
URL
.aUrl
- The URL
from which to read the properties.aDelimiters
- The path delimiters to be used when parsing the
source's properties.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.public JsonProperties(InputStream aInputStream) throws IOException, ParseException
InputStream
.aInputStream
- The InputStream
from which to read the
properties.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.public JsonProperties(InputStream aInputStream, char... aDelimiters) throws IOException, ParseException
InputStream
.aInputStream
- The InputStream
from which to read the
properties.aDelimiters
- The path delimiters to be used when parsing the
source's properties.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.public boolean containsKey(Object aKey)
public Collection<String> values()
public int size()
size
in interface org.refcodes.struct.Containable
public boolean isEmpty()
isEmpty
in interface org.refcodes.struct.Containable
public Properties retrieveFrom(String aFromPath)
retrieveFrom
in interface org.refcodes.struct.CanonicalMap
retrieveFrom
in interface org.refcodes.struct.PathMap<String>
retrieveFrom
in interface Properties
public Properties retrieveTo(String aToPath)
retrieveTo
in interface org.refcodes.struct.CanonicalMap
retrieveTo
in interface org.refcodes.struct.PathMap<String>
retrieveTo
in interface Properties
public char getDelimiter()
Delimiter.PATH
.
getDelimiter
in interface org.refcodes.mixin.DelimiterAccessor
getDelimiter
in interface Properties
public Class<String> getType()
getType
in interface Properties
getType
in interface org.refcodes.mixin.TypeAccessor<String>
public Object toDataStructure(String aFromPath)
toDataStructure
in interface org.refcodes.struct.PathMap<String>
public Properties reload() throws IOException, IllegalStateException, ParseException
ResourceProperties
from the resource to which the
ResourceProperties
are attached to (such as a File
as of
ResourceProperties.MutableResoureProperties.loadFrom(File)
or
ResourceProperties.MutableResoureProperties.saveTo(File)
). In case the resource
(such as an InputStream
) does not support reloading, then an
IllegalStateException
is thrown. Properties existing in the
attached resource as well in the Properties
itself are replaced.
Properties existing in the attached resource but not(!) in the
Properties
itself are not(!) removed. Use
ResourceProperties.reload(ReloadMode)
with an argument of true
(~
orphan removal) to remove properties not existing in the resource.reload
in interface ResourceProperties
Properties
as loaded from the resource and applied to
this instance.IOException
- thrown in case accessing the resource encountered an
I/O problem.IllegalStateException
- in case the attached resource does not
support reloading.ParseException
- Signals that an error has been reached
unexpectedly while parsing the data to be loaded.public Properties reload(ReloadMode aReloadMode) throws IOException, IllegalStateException, ParseException
ResourceProperties
from the resource to which the
ResourceProperties
are attached to (such as a File
as of
ResourceProperties.MutableResoureProperties.loadFrom(File)
or
ResourceProperties.MutableResoureProperties.saveTo(File)
). In case the resource
(such as an InputStream
) does not support reloading, then an
IllegalStateException
is thrown. Properties existing in the
attached resource as well in the Properties
itself are replaced.
When "orphan removal" is set to false
, then properties
existing in the attached resource but not(!) in the Properties
itself are not(!) removed. When "orphan removal" is set to
true
, then properties existing in the attached resource but
not(!) in the Properties
itself are(!) removed.reload
in interface ResourceProperties
aReloadMode
- when set to ReloadMode.ORPHAN_REMOVAL
, then
properties existing in the attached resource but not(!) in the
Properties
itself are(!) removed. Else properties not
existing in the attached resource are kept.Properties
as loaded from the resource and applied to
this instance.IOException
- thrown in case accessing the resource encountered an
I/O problem.IllegalStateException
- in case the attached resource does not
support reloading.ParseException
- Signals that an error has been reached
unexpectedly while parsing the data to be loaded.Copyright © 2021. All rights reserved.