public class MicroProfileConfigProperties extends Properties
Properties
implementation that wraps a Config
and
is suitable for installing as System
properties.
This class intentionally violates several tenets of the
Map
interface and Properties
class.
Deviations and oddities are noted below.
Hashtable.clear()
method, while supported, cannot, and
therefore does not, remove any items from the Config
that
is expressed by this class. It will remove all items manually
put into a MicroProfileConfigProperties
instance directly.Config.getPropertyNames()
, all iteration methods in this class
should be regarded as producing unmodifiable snapshots of a rough
estimate of the keys present in a MicroProfileConfigProperties
instance.UnsupportedOperationException
where appropriate.Config
abstracts, it is possible, for
example, for the containsKey(Object)
method to return
true
, and then for get(Object)
to be unable to
retrieve a value.This class is safe for concurrent use by multiple threads.
Config
,
Serialized Formdefaults
Constructor and Description |
---|
MicroProfileConfigProperties()
Creates a new
MicroProfileConfigProperties representing
the Config that results from ConfigProvider.getConfig() . |
MicroProfileConfigProperties(Config config)
Creates a new
MicroProfileConfigProperties wrapping the
supplied Config . |
MicroProfileConfigProperties(Config config,
Properties defaults)
Creates a new
MicroProfileConfigProperties using the
supplied Properties as its defaults and wrapping the supplied Config . |
MicroProfileConfigProperties(Properties defaults)
Creates a new
MicroProfileConfigProperties using the
supplied Properties as its defaults and wrapping the Config
that results from ConfigProvider.getConfig() . |
Modifier and Type | Method and Description |
---|---|
boolean |
contains(Object value)
Invokes the
containsValue(Object) method with the
supplied Object and returns the result. |
boolean |
containsKey(Object key)
Returns
true if this MicroProfileConfigProperties
directly contains the
supplied key , or if the supplied key is a String and is contained in the Set of configuration
property names returned by the Config.getPropertyNames()
method. |
boolean |
containsValue(Object value)
|
Enumeration<Object> |
elements()
Returns a non-
null Enumeration constructed atop
the Iterator supplied
by the Collection returned by an invocation of this
MicroProfileConfigProperties ' values() method. |
Set<Map.Entry<Object,Object>> |
entrySet()
Returns a non-
null immutable Set of
immutable Entry
instances representing this MicroProfileConfigProperties '
entries. |
Object |
get(Object key)
Returns the value indexed under the supplied
key , or
null if the value does not exist. |
String |
getProperty(String key)
Returns the
String value indexed under the supplied
key . |
static void |
installAsSystemProperties()
Installs an instance of
MicroProfileConfigProperties
somewhat irrevocably as the system properties, with the
current system properties as
its defaults. |
boolean |
isEmpty()
Returns
true if this MicroProfileConfigProperties
is empty. |
Enumeration<Object> |
keys()
Invokes the
keySet() method and returns its return
value. |
Set<Object> |
keySet()
Returns a non-
null , immutable Set of
Object s that contains the keys stored directly by this
MicroProfileConfigProperties or that are contained in the
return value of a Config.getPropertyNames() invocation. |
int |
size()
Returns the size of this
MicroProfileConfigProperties as
expressed by the size of its key set. |
Collection<Object> |
values()
|
getProperty, list, list, load, load, loadFromXML, propertyNames, save, setProperty, store, store, storeToXML, storeToXML, stringPropertyNames
clear, clone, compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, put, putAll, putIfAbsent, rehash, remove, remove, replace, replace, replaceAll, toString
public MicroProfileConfigProperties()
MicroProfileConfigProperties
representing
the Config
that results from ConfigProvider.getConfig()
.ConfigProvider.getConfig()
public MicroProfileConfigProperties(Config config)
MicroProfileConfigProperties
wrapping the
supplied Config
.config
- the Config
to express; may be null
in which case the return value of ConfigProvider.getConfig()
will be used insteadConfigProvider.getConfig()
public MicroProfileConfigProperties(Properties defaults)
MicroProfileConfigProperties
using the
supplied Properties
as its defaults and wrapping the Config
that results from ConfigProvider.getConfig()
.defaults
- the default Properties
; may be null
Properties.defaults
,
ConfigProvider.getConfig()
public MicroProfileConfigProperties(Config config, Properties defaults)
MicroProfileConfigProperties
using the
supplied Properties
as its defaults and wrapping the supplied Config
.config
- the Config
to express; may be null
in which case the return value of ConfigProvider.getConfig()
will be used insteaddefaults
- the default Properties
; may be null
ConfigProvider.getConfig()
public final boolean containsKey(Object key)
true
if this MicroProfileConfigProperties
directly contains the
supplied key
, or if the supplied key
is a String
and is contained in the Set
of configuration
property names returned by the Config.getPropertyNames()
method.
This method is safe for concurrent use by multiple threads.
containsKey
in interface Map<Object,Object>
containsKey
in class Hashtable<Object,Object>
key
- the key to seek; may be null
true
if this MicroProfileConfigProperties
directly contains the
supplied key
, or if the supplied key
is a String
and is contained in the Set
of configuration
property names returned by the Config.getPropertyNames()
method; false
otherwisepublic final boolean contains(Object value)
containsValue(Object)
method with the
supplied Object
and returns the result.
This method is safe for concurrent use by multiple threads.
contains
in class Hashtable<Object,Object>
value
- the value to seek; may be null
true
if the containsValue(Object)
method
returns true
; false
otherwisecontainsValue(Object)
public final boolean containsValue(Object value)
true
if this MicroProfileConfigProperties
contains the supplied value Object
.
First the Hashtable.containsValue(Object)
method is
invoked with the supplied Object
. If that returns true
, then true
is returned.
Next, all known property
names in the Config
wrapped by this
MicroProfileConfigProperties
are acquired. This
set is iterated over and Config.getOptionalValue(String,
Class)
is called for each one. If the resulting Optional
is present, then
true
is returned.
In all other cases false
is returned.
This method is safe for concurrent use by multiple threads.
containsValue
in interface Map<Object,Object>
containsValue
in class Hashtable<Object,Object>
value
- the value to seek; may be null
true
if this MicroProfileConfigProperties
contains the supplied value; false
otherwiseConfig.getPropertyNames()
,
Hashtable.containsValue(Object)
public final String getProperty(String key)
String
value indexed under the supplied
key
.
This method may return null
.
This implementation first calls get(Object)
. If the
result is a non-null
String
, then it is returned.
Otherwise, if the Properties.defaults
field is non-null
,
then Properties.getProperty(String)
is invoked on it with
the supplied key
and the result is returned. In all
other cases null
is returned.
This method is safe for concurrent use by multiple threads.
getProperty
in class Properties
key
- the key of the value to return; may be null
null
get(Object)
,
Properties.defaults
,
Properties.getProperty(String)
public final Object get(Object key)
key
, or
null
if the value does not exist. Note that a null
return value could result from a key's being explicitly
mapped to null
, or from a key's absence.
This implementation first calls Hashtable.containsKey(Object)
with the supplied key
. If
that method invocation returns true
, then the Hashtable.get(Object)
method is invoked and its result is
returned.
Otherwise, the Config.getOptionalValue(String, Class)
method is called and its resulting Optional
result
is acquired and returned, or, if it
is not present, null
is
returned.
This method is safe for concurrent use by multiple threads.
get
in interface Map<Object,Object>
get
in class Hashtable<Object,Object>
key
- the key of the value to return; may be null
null
Hashtable.containsKey(Object)
,
Hashtable.get(Object)
,
Config.getOptionalValue(String, Class)
public final boolean isEmpty()
true
if this MicroProfileConfigProperties
is empty. In all normal cases, this method will return false
, since normally Config
instances expose at least
one configuration property value.
This implementation calls the Hashtable.isEmpty()
method. If that method returns false
, then false
is returned.
Otherwise this method calls the Config.getPropertyNames()
method, calls Iterable.iterator()
on the resulting Iterable
, and, if
it is non-null
, calls the Iterator.hasNext()
method on it, returning its result.
In all other cases this method returns true
.
This method is a much faster way of checking if this MicroProfileConfigProperties
' size is 0
.
This method is safe for concurrent use by multiple threads.
isEmpty
in interface Map<Object,Object>
isEmpty
in class Hashtable<Object,Object>
true
, rarely, if this MicroProfileConfigProperties
is empty; false
otherwiseHashtable.isEmpty()
,
Config.getPropertyNames()
public final int size()
MicroProfileConfigProperties
as
expressed by the size of its key set.
This method returns int
s that are greater than or equal to zero.
This method rarely returns 0
given the fact that a
Config
normally expresses at least one configuration
property value.
Use the isEmpty()
method for a much, much faster way
to check for a size of 0
.
This method is safe for concurrent use by multiple threads.
public final Enumeration<Object> keys()
keySet()
method and returns its return
value.
This method never returns null
.
This method is safe for concurrent use by multiple threads.
public final Set<Object> keySet()
null
, immutable Set
of
Object
s that contains the keys stored directly by this
MicroProfileConfigProperties
or that are contained in the
return value of a Config.getPropertyNames()
invocation.
The Set
of Object
s returned by this method is
a disconnected snapshot in time of the keys that were thought to
be in this MicroProfileConfigProperties
at the time the
snapshot was constructed. Changes to this MicroProfileConfigProperties
are not reflected in the Set
.
This method is safe for concurrent use by multiple threads.
The Set
returned by this method is safe for concurrent
use by multiple threads.
keySet
in interface Map<Object,Object>
keySet
in class Hashtable<Object,Object>
null
, immutable Set
of
Object
s that contains the keys stored directly by this
MicroProfileConfigProperties
or that are contained in the
return value of a Config.getPropertyNames()
invocationHashtable.keySet()
,
Config.getPropertyNames()
public final Enumeration<Object> elements()
null
Enumeration
constructed atop
the Iterator
supplied
by the Collection
returned by an invocation of this
MicroProfileConfigProperties
' values()
method.
This method is safe for concurrent use by multiple threads.
elements
in class Hashtable<Object,Object>
null
Enumeration
over the values
directly contained by this MicroProfileConfigProperties
or indirectly accessible via calls to Config.getOptionalValue(String, Class)
values()
,
Config.getPropertyNames()
,
Config.getOptionalValue(String, Class)
public final Collection<Object> values()
null
, immutable
Collection
of this MicroProfileConfigProperties
' values.
The values returned are those stored directly (via calls to
Hashtable.put(Object, Object)
, for example) or stored implicitly
as configuration values accessible via calls to Config.getOptionalValue(String, Class)
.
Changes in this MicroProfileConfigProperties
are not
reflected in the returned Collection
.
This method is safe for concurrent use by multiple threads.
values
in interface Map<Object,Object>
values
in class Hashtable<Object,Object>
null
, immutable
Collection
of this MicroProfileConfigProperties
' valuesConfig.getPropertyNames()
,
Config.getOptionalValue(String, Class)
public final Set<Map.Entry<Object,Object>> entrySet()
null
immutable Set
of
immutable Entry
instances representing this MicroProfileConfigProperties
'
entries.
The entries returned are those that result from calls to
Hashtable.put(Object, Object)
and similar methods, and from
configuration property values accessible via calls to Config.getOptionalValue(String, Class)
.
This method calls the keySet()
and get(Object)
methods.
Iteration order of the returned Set
is not defined,
with the exception that entries stored directly come at the head
of the returned Set
.
This method is safe for concurrent use by multiple threads.
entrySet
in interface Map<Object,Object>
entrySet
in class Hashtable<Object,Object>
null
immutable Set
of
immutable Entry
instances representing this MicroProfileConfigProperties
'
entriesConfig.getPropertyNames()
,
Config.getOptionalValue(String, Class)
public static final void installAsSystemProperties()
MicroProfileConfigProperties
somewhat irrevocably as the system properties, with the
current system properties as
its defaults.
This method is safe for concurrent use by multiple threads.
SecurityException
- if permission is not grantedCopyright © 2019–2021, microBean™. All rights reserved.