public abstract class BaseDistributedPropertySet extends BasePropertySet implements DistributedPropertySet
PropertySet
that combines properties exposed from multiple
PropertySet
s into one.
This implementation allows one PropertySet
to assemble
all properties exposed from other "satellite" PropertySet
s.
(A satellite may itself be a DistributedPropertySet
, so
in general this can form a tree.)
This is useful for JAX-WS because the properties we expose to the application
are contributed by different pieces, and therefore we'd like each of them
to have a separate PropertySet
implementation that backs up
the properties. For example, this allows FastInfoset to expose its
set of properties to RequestContext
by using a strongly-typed fields.
This is also useful for a client-side transport to expose a bunch of properties
into ResponseContext
. It simply needs to create a PropertySet
object with methods for each property it wants to expose, and then add that
PropertySet
to Packet
. This allows property values to be
lazily computed (when actually asked by users), thus improving the performance
of the typical case where property values are not asked.
A similar benefit applies on the server-side, for a transport to expose
a bunch of properties to WebServiceContext
.
To achieve these benefits, access to DistributedPropertySet
is slower
compared to PropertySet
(such as get/set), while adding a satellite
object is relatively fast.
BasePropertySet.Accessor, BasePropertySet.PropertyMap, BasePropertySet.PropertyMapEntry
PropertySet.Property
Constructor and Description |
---|
BaseDistributedPropertySet() |
Modifier and Type | Method and Description |
---|---|
void |
addSatellite(Class<? extends PropertySet> keyClass,
PropertySet satellite) |
void |
addSatellite(PropertySet satellite) |
protected Map<String,Object> |
asMapLocal() |
boolean |
containsKey(Object key) |
void |
copySatelliteInto(DistributedPropertySet r) |
void |
copySatelliteInto(MessageContext r) |
protected void |
createEntrySet(Set<Map.Entry<String,Object>> core) |
protected Map<String,Object> |
createView() |
Object |
get(Object key)
Gets the name of the property.
|
<T extends PropertySet> |
getSatellite(Class<T> satelliteClass) |
Map<Class<? extends PropertySet>,PropertySet> |
getSatellites() |
Object |
put(String key,
Object value)
Sets a property.
|
Object |
remove(Object key) |
void |
removeSatellite(PropertySet satellite) |
boolean |
supports(Object key)
Checks if this
PropertySet supports a property of the given name. |
protected boolean |
supportsLocal(Object key) |
asMap, createMapView, getPropertyMap, mapAllowsAdditionalProperties, parse
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
asMap, createMapView
public void addSatellite(@NotNull PropertySet satellite)
addSatellite
in interface DistributedPropertySet
public void addSatellite(@NotNull Class<? extends PropertySet> keyClass, @NotNull PropertySet satellite)
addSatellite
in interface DistributedPropertySet
public void removeSatellite(PropertySet satellite)
removeSatellite
in interface DistributedPropertySet
public void copySatelliteInto(@NotNull DistributedPropertySet r)
public void copySatelliteInto(MessageContext r)
copySatelliteInto
in interface DistributedPropertySet
@Nullable public <T extends PropertySet> T getSatellite(Class<T> satelliteClass)
getSatellite
in interface DistributedPropertySet
public Map<Class<? extends PropertySet>,PropertySet> getSatellites()
getSatellites
in interface DistributedPropertySet
public Object get(Object key)
BasePropertySet
get
in interface PropertySet
get
in class BasePropertySet
key
- This field is typed as Object
to follow the Map.get(Object)
convention, but if anything but String
is passed, this method
just returns null.public Object put(String key, Object value)
BasePropertySet
put
in interface PropertySet
put
in class BasePropertySet
Property
public boolean containsKey(Object key)
containsKey
in interface PropertySet
containsKey
in class BasePropertySet
public boolean supports(Object key)
BasePropertySet
PropertySet
supports a property of the given name.supports
in interface PropertySet
supports
in class BasePropertySet
public Object remove(Object key)
remove
in interface PropertySet
remove
in class BasePropertySet
protected void createEntrySet(Set<Map.Entry<String,Object>> core)
createEntrySet
in class BasePropertySet
protected boolean supportsLocal(Object key)
protected Map<String,Object> createView()
createView
in class BasePropertySet
Copyright © 2018 Oracle Corporation. All rights reserved.