## org.opengis.feature.type
Interface PropertyType

All Known Subinterfaces:
  AssociationType, AttributeType, ComplexType, FeatureCollectionType, FeatureType, GeometryType, OperationType, SimpleFeatureCollectionType, SimpleFeatureType

    public interface PropertyType

PropertyType information, captured as AttributeType, AssociationType and OperationType.

The following information from the GFM MetaModel are represented:

- memberName - actually bound to specific TypeName, these names are gathered together into a Namespace
- description - we use an InternationalString as description may be available in more then one language.

We meet the following requirements:

- Constraints on Properties: are represented with Filter

Method Summary
`boolean` `equals(Object other)` PropertyType identity should be based on TypeName.
`InternationalString` `getDescription()` A description for the type is allowed.
`Name` `getName()` Indicates the actual name of this PropertyType.
`Set<Filter>` `getRestrictions()` List of restrictions used to limit the allowable values for objects of this type.
`PropertyType` `getSuper()` Access to super type information.
`Object` `getUserData(Object key)` Used to retrieve application specific data associated with this PropertyType.
`int` `hashCode()` Hashcode should be based on TypeName.
`boolean` `isAbstract()` Indicate that this PropertyType may not be used directly and must be subtyped
`void` `putUserData(Object key, Object data)` Used to hold application specific data associated with this PropertyType.

Method Detail

### getName

    Name getName()

  Indicates the actual name of this PropertyType.

  TypeName is used, and becomes important when working with supertypes and complex content for AttributeTypes.

  Follows Java beans naming conventions indicating this is part of our data model.

  Returns:
    Name containing both the namespace and name for this type

### getSuper

    PropertyType getSuper()

  Access to super type information.

  The super type may contain additional restrictions to be considered, or a definition of isNilable.

  Returns:
    PropertyType of supertype

### isAbstract

    boolean isAbstract()

  Indicate that this PropertyType may not be used directly and must be subtyped

### getRestrictions

    Set<Filter> getRestrictions()

  List of restrictions used to limit the allowable values for objects of this type.

  These restrictions should be considered in light of those available through getSuper, in the case where Restrictions conflict these should be considered complete overrides of the restrictions available via the getSuper.

  In the GFM this is known as constraints.

  Returns:
    List<Restriction> used to validate allowable values.

### equals

    boolean equals(Object other)

  PropertyType identity should be based on TypeName.

  Overrides:
    `equals` in class `Object`
  Returns:
    true iff this equals other

### hashCode

    int hashCode()

  Hashcode should be based on TypeName.

  Overrides:
    `hashCode` in class `Object`
  Returns:
    getName().hashCode()

### getDescription

    InternationalString getDescription()

  A description for the type is allowed.

  InternationalString is used to allow for translations.

  Returns:
    description of this type

### 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 opperations. By supporting user data in a limited way offer a way to prevent the creation of numerous Map<PropertyType,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 assistence.

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

### putUserData

    void putUserData(Object key,
                     Object data)

  Used to hold application specific data associated with this PropertyType.

  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<PropertyType,Object> in client code.

  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.

  User's please note the following limitations on this facility:

  - Your data is not guaranteed to be persisted
  Implementors please consider the following suggestions:
  - You may consider offer to persist String to Serializable mappings
  - You may wish to collect user in a lazy fashion at the Schema level rather then burden your PropertyType implementations with a user data Map.

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

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