Interface DistributedPropertySet
- All Superinterfaces:
PropertySet
- All Known Subinterfaces:
MessageContext
- All Known Implementing Classes:
BaseDistributedPropertySet
,DistributedPropertySet
,Packet
,RequestContext
,TCPClientTransport
,TCPServiceChannelWSAdapter.ServiceChannelWSSatellite
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.
- Author:
- Kohsuke Kawaguchi
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.oracle.webservices.api.message.PropertySet
PropertySet.Property
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addSatellite
(PropertySet satellite) void
addSatellite
(Class<? extends PropertySet> keyClass, PropertySet satellite) void
<T extends PropertySet>
TgetSatellite
(Class<T> satelliteClass) Map<Class<? extends PropertySet>,
PropertySet> void
removeSatellite
(PropertySet satellite) Methods inherited from interface com.oracle.webservices.api.message.PropertySet
asMap, containsKey, createMapView, get, put, remove, supports
-
Method Details
-
getSatellite
-
getSatellites
Map<Class<? extends PropertySet>,PropertySet> getSatellites() -
addSatellite
-
addSatellite
-
removeSatellite
-
copySatelliteInto
-