org.jvnet.ws.message
Class PropertySet

java.lang.Object
  extended by org.jvnet.ws.message.PropertySet
Direct Known Subclasses:
DistributedPropertySet

public abstract class PropertySet
extends Object

A set of "properties" that can be accessed via strongly-typed fields as well as reflexibly through the property name.

Author:
Kohsuke Kawaguchi

Nested Class Summary
protected static interface PropertySet.Accessor
          Represents a typed property defined on a PropertySet.
static interface PropertySet.Property
          Marks a field on PropertySet as a property of MessageContext.
protected static class PropertySet.PropertyMap
          Represents the list of strongly-typed known properties (keyed by property names.)
 
Constructor Summary
protected PropertySet()
          Creates a new instance of TypedMap.
 
Method Summary
 boolean containsKey(Object key)
           
 Map<String,Object> createMapView()
          Creates a Map view of this PropertySet.
 Object get(Object key)
          Gets the name of the property.
protected abstract  PropertySet.PropertyMap getPropertyMap()
          Map representing the Fields and Methods annotated with PropertySet.Property.
protected static PropertySet.PropertyMap parse(Class clazz)
          This method parses a class for fields and methods with PropertySet.Property.
 Object put(String key, Object value)
          Sets a property.
 Object remove(Object key)
           
 boolean supports(Object key)
          Checks if this PropertySet supports a property of the given name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PropertySet

protected PropertySet()
Creates a new instance of TypedMap.

Method Detail

getPropertyMap

protected abstract PropertySet.PropertyMap getPropertyMap()
Map representing the Fields and Methods annotated with PropertySet.Property. Model of PropertySet class.

At the end of the derivation chain this method just needs to be implemented as:

 private static final PropertyMap model;
 static {
   model = parse(MyDerivedClass.class);
 }
 protected PropertyMap getPropertyMap() {
   return model;
 }
 


parse

protected static PropertySet.PropertyMap parse(Class clazz)
This method parses a class for fields and methods with PropertySet.Property.


containsKey

public final boolean containsKey(Object key)

get

public Object get(Object key)
Gets the name of the property.

Parameters:
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.

put

public Object put(String key,
                  Object value)
Sets 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.

Throws:
com.sun.xml.ws.util.ReadOnlyPropertyException - if the given key is an alias of a strongly-typed field, and if the name object given is not assignable to the field.
See Also:
PropertySet.Property

supports

public boolean supports(Object key)
Checks if this PropertySet supports a property of the given name.


remove

public Object remove(Object key)

createMapView

public final Map<String,Object> createMapView()
Creates a Map view of this PropertySet.

This map is partially live, in the sense that values you set to it will be reflected to PropertySet.

However, this map may not pick up changes made to PropertySet after the view is created.

Returns:
always non-null valid instance.


Copyright © 2005-2012 Oracle Corporation. All Rights Reserved.