## org.opengis.feature.type
Interface PropertyDescriptor

All Known Subinterfaces:
  AssociationDescriptor, AttributeDescriptor, OperationDescriptor, StructuralDescriptor

    public interface PropertyDescriptor

Describes how a ComplexType may be composed of types, associations and operations.

Name and Type need to be defined in most cases.

## Naming

Since a descriptor is defined with respect to a ComplexAttribute you can use the provided name to lookup a descriptor at runtime. The name however belongs to a namespace that may have no relationship with the containing ComplexType, so please be sure

## Note on Use of User Data

User Data is used to allow additional "temporary" metadata to be associated with attributes descriptors in order to facilitiate procesing services. These services traditionally setting up "shadow" structures such as a HashMap. Allowing non persisted bread crumbs is considered preferable.

Method Summary
`Name` `getName()` Indicates Name of defined attribute in a ComplexType, this method may never return a null value.
`Object` `getUserData(Object key)` Used to retrieve application specific data associated with this PropertyType.
`void` `putUserData(Object key, Object data)` Used to retrieve application specific data associated with this Descriptor.
`PropertyType` `type()` Convenience method for getting at the type of the descriptor.

Method Detail

### putUserData

    void putUserData(Object key,
                     Object data)

  Used to retrieve application specific data associated with this Descriptor.

  Client application often are forced to keep tract of additional informal metadata during processing or transformation opperations. By supporting user data in a limited way offer a way to prevent the creation of numerous Map<PropertyDescriptor,Object> in client code that must be kept in sync with the type system.

  There is no bridge from our Type system to the formal ISO Metadata classes right now, please use this facility as a temporary measure and join us on the developers list as we would request your assistence.

  A very simple example is the association of an XML prefix with this attribute descriptor.

  Parameters:
    `key` - key used to retrive user data

### getUserData

    Object getUserData(Object key)

  Used to retrieve application specific data associated with this PropertyType.

  Client application often are forced to keep tract of additional informal metadata during processing or transformation operations. By supporting user data in a limited way offer a way to prevent the creation of numerous Map<PropertyDescriptor,Object> in client code that must be kept in sync with the feature model.

  There is no bridge from our Type system to the formal ISO Metadata classes right now, please use this facility as a temporary measure and join us on the developers list as we would request your assistance.

  Parameters:
    `key` - key used to retrieve user data
  Returns:
    user data previously stored under the provided key

### getName

    Name getName()

  Indicates Name of defined attribute in a ComplexType, this method may never return a null value.

  The name is actually defined by the sub type, this is derived quantity.

### type

    PropertyType type()

  Convenience method for getting at the type of the descriptor.

  This is considered "derived" because the specific type is declared by the subclass.

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.