## org.opengis.feature.simple
Interface SimpleFeature

All Superinterfaces:
  Attribute, ComplexAttribute, Feature, Property

    public interface SimpleFeature

extends Feature

Feature interface customised for Simple content.

This class has a different target audience then that of the rest of the Feature Model - the target user is a casual user of Shapefiles, if they can switch over to database tables without noticing so much the better.

Note this is extension of Feature, and thus it is complete with respect to the needs of XPath and GML generation. This represents a restriction as indicated by SimpleFeatureType, and this restriction has allowed us to unambiguously create helpful methods based in name and index.

We considered providing a helper method based on GenericName to this class or directly to Feature. There is no significant advantage over direct use of AttribtueType.

Method Summary
`List<Association>` `associations()` Associations are not supported by SimpleFeature.
`List<Attribute>` `attributes()` List of attributes in prescribed order.
`List<Attribute>` `getAttributes()` List of attributes is in the same order as that defined by SimpleFeatureType.
`Object` `getDefaultGeometryValue()` Returns the default geometry for the simple feature.
`int` `getNumberOfAttributes()` Number of attributes in SimpleFeatureType.
`SimpleFeatureType` `getType()` Restricted to SimpleFeatureType This restriction enabled client code to confidently assume that each attribute occurs in the perscribed order and that no super types are used.
`List<AttributeType>` `getTypes()` AttributeTypes in the order defined by SimpleFeatureType.
`List<Property>` `getValue()` List<Attribute> (since associations are not allowed).
`Object` `getValue(int index)` Access attribute by "index" indicated by SimpleFeatureType.
`Object` `getValue(String name)` Retrieve value by attribute name.
`List<Object>` `getValues()` Value view of attributes, in a manner similar Map.values().
`void` `setDefaultGeometryValue(Object geometry)` Sets the default geometry for the simple feature.
`void` `setValue(int index, Object value)` Modify attribute at the "index" indicated by SimpleFeatureType.
`void` `setValue(List<Property> values)` Update the feature with these attributes.
`void` `setValue(String name, Object value)` Modify attribute with "name" indicated by SimpleFeatureType.
`void` `setValues(List<Attribute> values)` Sets the values of the feautre.
`void` `setValues(Object[] values)` Sets the values of the feautre.

Methods inherited from interface Feature
`getBounds, getCRS, getDefaultGeometry, getID, getUserData, putUserData, setCRS, setDefaultGeometry`

Methods inherited from interface ComplexAttribute
`get, getDescriptor, setValue`

Methods inherited from interface Attribute
`nillable, operation, setValue`

Methods inherited from interface Property
`descriptor, name`

Method Detail

### associations

    List<Association> associations()

  Associations are not supported by SimpleFeature.

  Specified by:
    `associations` in interface `ComplexAttribute`
  Returns:
    Collection.EMPTY_LIST

### attributes

    List<Attribute> attributes()

  List of attributes in prescribed order.

  Specified by:
    `attributes` in interface `ComplexAttribute`
  Returns:
    List of Attribute in order indicated by SimpleFeatureType

### getAttributes

    List<Attribute> getAttributes()

  List of attributes is in the same order as that defined by SimpleFeatureType.

### getTypes

    List<AttributeType> getTypes()

  AttributeTypes in the order defined by SimpleFeatureType.

  This method is not part of the data model and does not follow Java Bean naming conventions.

  Returns:
    List of AttribtueTypes in order defined by SimpleFeatureType

### getValue

    List<Property> getValue()

  List<Attribute> (since associations are not allowed).

  You may wish to use getValues() instead, in order to access feature contents directly.

  Specified by:
    `getValue` in interface `Attribute`
  Specified by:
    `getValue` in interface `ComplexAttribute`
  Returns:
    List of attribtues in the order defined by SimpleFeatureType

### setValue

    void setValue(List<Property> values)

  Update the feature with these attributes.

  You may wish to use setValues() instead, in order to access feature contents directly.

### getValues

    List<Object> getValues()

  Value view of attributes, in a manner similar Map.values().

  The content available through getTypes() and getvalues() are considered a view of getAttribtues(). Order is maintained, and removing content will result in a modification to all three lists.

### getType

    SimpleFeatureType getType()

  Restricted to SimpleFeatureType

  This restriction enabled client code to confidently assume that each attribute occurs in the perscribed order and that no super types are used.

  Specified by:
    `getType` in interface `Attribute`
  Specified by:
    `getType` in interface `ComplexAttribute`
  Specified by:
    `getType` in interface `Feature`
  Specified by:
    `getType` in interface `Property`
  Returns:
    AttributeType information describing allowable content

### getValue

    Object getValue(String name)

  Retrieve value by attribute name.

  Parameters:
    `name` -
  Returns:
    Attribute Value associated with name

### getValue

    Object getValue(int index)

  Access attribute by "index" indicated by SimpleFeatureType.

  Parameters:
    `index` -

### setValue

    void setValue(String name,
                  Object value)

  Modify attribute with "name" indicated by SimpleFeatureType.

  Parameters:
    `name` -
    `value` -

### setValue

    void setValue(int index,
                  Object value)

  Modify attribute at the "index" indicated by SimpleFeatureType.

  Parameters:
    `index` -
    `value` -

### setValues

    void setValues(List<Attribute> values)

  Sets the values of the feautre.

### setValues

    void setValues(Object[] values)

  Sets the values of the feautre.

### getNumberOfAttributes

    int getNumberOfAttributes()

  Number of attributes in SimpleFeatureType.

  This is identical to `types().size()`

  Returns:
    number of available attribtues

### getDefaultGeometryValue

    Object getDefaultGeometryValue()

  Returns the default geometry for the simple feature.

  This method is convenience for getDefaultGeometry().get();

  Returns:
    The default geometry, or null if none exists.

### setDefaultGeometryValue

    void setDefaultGeometryValue(Object geometry)

  Sets the default geometry for the simple feature.

  This method is convenience for getDefaultGeometry().set(geometry);

  Parameters:
    `geometry` - The new defautl geometry.

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