Class BaseDistributedPropertySet
- All Implemented Interfaces:
DistributedPropertySet,PropertySet
- Direct Known Subclasses:
DistributedPropertySet,Packet,RequestContext
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.
- Author:
- Kohsuke Kawaguchi
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.webservices.api.message.BasePropertySet
BasePropertySet.Accessor, BasePropertySet.PropertyMap, BasePropertySet.PropertyMapEntryNested classes/interfaces inherited from interface com.oracle.webservices.api.message.PropertySet
PropertySet.Property -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSatellite(PropertySet satellite) voidaddSatellite(Class<? extends PropertySet> keyClass, PropertySet satellite) booleancontainsKey(Object key) voidvoidprotected voidcreateEntrySet(Set<Map.Entry<String, Object>> core) Gets the name of the property.<T extends PropertySet>
TgetSatellite(Class<T> satelliteClass) Map<Class<? extends PropertySet>,PropertySet> Sets a property.voidremoveSatellite(PropertySet satellite) booleanChecks if thisPropertySetsupports a property of the given name.protected booleansupportsLocal(Object key) Methods inherited from class com.oracle.webservices.api.message.BasePropertySet
asMap, createMapView, getPropertyMap, mapAllowsAdditionalProperties, parse, parseMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.oracle.webservices.api.message.PropertySet
asMap, createMapView
-
Constructor Details
-
BaseDistributedPropertySet
public BaseDistributedPropertySet()
-
-
Method Details
-
addSatellite
- Specified by:
addSatellitein interfaceDistributedPropertySet
-
addSatellite
public void addSatellite(@NotNull Class<? extends PropertySet> keyClass, @NotNull PropertySet satellite) - Specified by:
addSatellitein interfaceDistributedPropertySet
-
removeSatellite
- Specified by:
removeSatellitein interfaceDistributedPropertySet
-
copySatelliteInto
-
copySatelliteInto
- Specified by:
copySatelliteIntoin interfaceDistributedPropertySet
-
getSatellite
- Specified by:
getSatellitein interfaceDistributedPropertySet
-
getSatellites
- Specified by:
getSatellitesin interfaceDistributedPropertySet
-
get
Description copied from class:BasePropertySetGets the name of the property.- Specified by:
getin interfacePropertySet- Overrides:
getin classBasePropertySet- Parameters:
key- This field is typed asObjectto follow theMap.get(Object)convention, but if anything butStringis passed, this method just returns null.
-
put
Description copied from class:BasePropertySetSets a property.Implementation Note
This method is slow. Code inside JAX-WS should define strongly-typed fields in this class and access them directly, instead of using this.
- Specified by:
putin interfacePropertySet- Overrides:
putin classBasePropertySet- See Also:
-
containsKey
- Specified by:
containsKeyin interfacePropertySet- Overrides:
containsKeyin classBasePropertySet
-
supports
Description copied from class:BasePropertySetChecks if thisPropertySetsupports a property of the given name.- Specified by:
supportsin interfacePropertySet- Overrides:
supportsin classBasePropertySet
-
remove
- Specified by:
removein interfacePropertySet- Overrides:
removein classBasePropertySet
-
createEntrySet
- Overrides:
createEntrySetin classBasePropertySet
-
asMapLocal
-
supportsLocal
-
createView
- Overrides:
createViewin classBasePropertySet
-