|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
SimpleFeature
public interface SimpleFeature
A simple feature is one that does not have any nested attributes, and that
has no multiplicity for each attribute. In non xml speak this means that
the attributes returned are guaranteed to be the Objects you would expect -
not Lists as is the case when Features are non-simple. This is thus a
constraining extension - it essentially allows you to make a few more
assumptions about the nature of the Feature
you are getting back.
The notion of a Simple Feature is drawn from the OGC's Simple Features for SQL specification - where a simple feature represents a single row in a database table. This extends beyond databases though, to flat files, for example. A database does not necessarily only return simple features - indeed by relying on foreign keys much more complex structures can be created. But at the time of the creation of this class all GeoTools datastores return Simple Features - they just were not explicitly called that. Making explicit that they are Simple should hopefully encourage more complex Features to be returned.
The assumptions one can make with Simple Features are as follows:
getAttribute(int)
is called then it will always return an
actual object, instead of a List, as is common in the parent Feature
class. That is to say a Simple Feature will never have more than one
attribute in any of its positions, so the interface just assumes that you
want the actual object, instead of a List containing just the object.
setAttribute(int, Object)
is called then a similar assumption is
made about the object being set - it need be a List, will default to
setting the attribute itself.
getAttribute(String)
and Feature.setAttribute(String, Object)
implicitly append a [0], as that's the behavior implementors expect - to
name an attribute and get it back.
To figure out if a Feature is a SimpleFeature one may call instanceof. For
a number of Features returned from a DataStore it will save much energy if
instanceof is called on the FeatureType, to check if it is a SimpleFeatureType
. And in the future we should have FeatureCollections
that know their types.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface Feature |
---|
Feature.NULL |
Method Summary | |
---|---|
Object |
getAttribute(int index)
Deprecated. Gets an attribute by the given zero-based index. |
Object |
getAttribute(String xPath)
Deprecated. This is the same as the parent declaration, except that when the instance is not specified for the xPath, [0] will be added as there is only ever one Attribute value for an AttributeType |
FeatureType |
getFeatureType()
Deprecated. Gets a reference to the schema for this feature. |
void |
setAttribute(int position,
Object val)
Deprecated. Sets an attribute by the given zero-based index. |
void |
setAttributes(Object[] attributes)
Deprecated. Sets all attributes for this feature, passed as a complex object array. |
Methods inherited from interface Feature |
---|
getAttributes, getBounds, getDefaultGeometry, getID, getNumberOfAttributes, setAttribute, setDefaultGeometry |
Methods inherited from interface SimpleFeature |
---|
getAttribute, getAttributeCount, getAttributes, getType, setAttribute, setAttributes, setDefaultGeometry |
Methods inherited from interface Feature |
---|
getDefaultGeometryProperty, getIdentifier, setDefaultGeometryProperty |
Methods inherited from interface ComplexAttribute |
---|
getProperties, getProperties, getProperties, getProperty, getProperty, getValue, setValue, validate |
Methods inherited from interface Attribute |
---|
getDescriptor |
Methods inherited from interface Property |
---|
getName, getUserData, isNillable, setValue |
Method Detail |
---|
FeatureType getFeatureType()
getFeatureType
in interface SimpleFeature
void setAttributes(Object[] attributes) throws IllegalAttributeException
setAttributes
in interface SimpleFeature
attributes
- All feature attributes.
IllegalAttributeException
- Passed attributes do not match schema.Object getAttribute(String xPath)
getAttribute
in interface SimpleFeature
xPath
- XPath representation of attribute location.
Feature.getAttribute(String)
Object getAttribute(int index)
getAttribute
in interface SimpleFeature
index
- The requested index. Must be 0 <= idx <
getNumberOfAttributes().
void setAttribute(int position, Object val) throws IllegalAttributeException, IndexOutOfBoundsException
setAttribute
in interface SimpleFeature
position
- The requested index. Must be 0 <= idx <
getNumberOfAttributes()val
- An object representing the attribute being set
IllegalAttributeException
- if the passed in val does not validate
against the AttributeType at that position.
ArrayIndexOutOfBoundsException
- if an invalid position is given
IndexOutOfBoundsException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |