public abstract class BaseDistributedPropertySet extends BasePropertySet implements DistributedPropertySet
PropertySet that combines properties exposed from multiple
PropertySets into one.
This implementation allows one PropertySet to assemble
all properties exposed from other "satellite" PropertySets.
(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.PropertyMapEntryPropertySet.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, parseclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitasMap, createMapViewpublic void addSatellite(@NotNull PropertySet satellite)
addSatellite in interface DistributedPropertySetpublic void addSatellite(@NotNull Class<? extends PropertySet> keyClass, @NotNull PropertySet satellite)
addSatellite in interface DistributedPropertySetpublic void removeSatellite(PropertySet satellite)
removeSatellite in interface DistributedPropertySetpublic 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 DistributedPropertySetpublic Map<Class<? extends PropertySet>,PropertySet> getSatellites()
getSatellites in interface DistributedPropertySetpublic Object get(Object key)
BasePropertySetget in interface PropertySetget in class BasePropertySetkey - 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)
BasePropertySetput in interface PropertySetput in class BasePropertySetPropertypublic boolean containsKey(Object key)
containsKey in interface PropertySetcontainsKey in class BasePropertySetpublic boolean supports(Object key)
BasePropertySetPropertySet supports a property of the given name.supports in interface PropertySetsupports in class BasePropertySetpublic Object remove(Object key)
remove in interface PropertySetremove in class BasePropertySetprotected void createEntrySet(Set<Map.Entry<String,Object>> core)
createEntrySet in class BasePropertySetprotected boolean supportsLocal(Object key)
protected Map<String,Object> createView()
createView in class BasePropertySetCopyright © 2005–2017 Oracle Corporation. All rights reserved.