org.opengis.feature.simple
Interface SimpleFeatureType

All Superinterfaces:
AttributeType, ComplexType, FeatureType, PropertyType
All Known Implementing Classes:
SimpleFeatureTypeImpl

public interface SimpleFeatureType
extends FeatureType

The type of a SimpleFeature.

The definition of a "simple feature" can be summed up as the following:

Attribute Indexing

The attributes which compose a simple feature type are ordered. For this reason attributes are available via a simple index. Given the following type definition:
   <complexType name="mySimpleType"/>
     <sequence>
        <element name="foo" type="xs:string"/>
        <element name="bar" type="xs:integer"/>
     </sequence>
   </complexType>
 

The attribute descriptor are addressable via index:
   SimpleFeatureType type = ...;

   AttributeDescriptor foo = type.getAttribute( 0 );
   AttributeDescriptor bar-= type.getAttribute( 1 );
 

Attribute Multiplicity

With simple feature types, the multiplicity of attributes is always assumed to be 1, ie, getMinOccurs() == 1 and getMaxOccurs() == 1. A consequence of this is that attributes from a simple feature always line up 1 to 1 with the descriptors from the type:
   SimpleFeature feature = ...;
   SimpleFeatureType type = feature.getType();

   type.getAttribute( 0 ).getDescriptor() == type.getAttribute( 0 );
   type.getAttribute( 1 ).getDescriptor() == type.getAttribute( 1 );
 

Attribute Naming

The names of attributes in a simple feature type are never namespace qualified. For this reason there is no difference between accessing an attribute with getDescriptor(String) and getDescriptor(Name).

Author:
Jody Garnett, Refractions Research, Justin Deoliveira, The Open Planning Project

Method Summary
 int getAttributeCount()
          Returns the number of attributes composing the feature type This method is convenience for getAttributes().size().
 List<AttributeDescriptor> getAttributeDescriptors()
          The list of attribute descriptors which make up the feature type.
 AttributeDescriptor getDescriptor(int index)
          Returns the attribute descriptor at the specified index.
 AttributeDescriptor getDescriptor(Name name)
          Returns the attribute descriptor which matches the specified name.
 AttributeDescriptor getDescriptor(String name)
          Returns the attribute descriptor which matches the specified name.
 AttributeType getType(int index)
          Returns the type of the attribute at the specified index.
 AttributeType getType(Name name)
          Returns the type of the attribute which matches the specified name.
 AttributeType getType(String name)
          Returns the type of the attribute which matches the specified name.
 String getTypeName()
          The local name for this FeatureType.
 List<AttributeType> getTypes()
          Returns the types of all the attributes which make up the feature.
 int indexOf(Name name)
          Returns the index of the attribute which matches the specified name.
 int indexOf(String name)
          Returns the index of the attribute which matches the specified name.
 
Methods inherited from interface FeatureType
getCoordinateReferenceSystem, getGeometryDescriptor, isIdentified
 
Methods inherited from interface ComplexType
getBinding, getDescriptors, isInline
 
Methods inherited from interface AttributeType
getSuper
 
Methods inherited from interface PropertyType
equals, getDescription, getName, getRestrictions, getUserData, hashCode, isAbstract
 

Method Detail

getTypeName

String getTypeName()
The local name for this FeatureType. Specifically this method returns getName().getLocalPart().

Returns:
The local name for this FeatureType.

getAttributeDescriptors

List<AttributeDescriptor> getAttributeDescriptors()
The list of attribute descriptors which make up the feature type.

This method is a convenience for:

 return (List<AttributeDescriptor>) getProperties();
 

Returns:
The ordered list of attribute descriptors.

getDescriptor

AttributeDescriptor getDescriptor(String name)
Returns the attribute descriptor which matches the specified name.

This method is convenience for:

 return (AttributeDescriptor) getProperty(name);
 

This method returns null if no such attribute exists.

Specified by:
getDescriptor in interface ComplexType
Parameters:
name - The name of the descriptor to return.
Returns:
The attribute descriptor matching the specified name, or null if no such attribute exists.

getDescriptor

AttributeDescriptor getDescriptor(Name name)
Returns the attribute descriptor which matches the specified name.

This method is convenience for:

 return (AttributeDescriptor) getProperty(name);
 

This method returns null if no such attribute exists.

Specified by:
getDescriptor in interface ComplexType
Parameters:
name - The name of the descriptor to return.
Returns:
The attribute descriptor matching the specified name, or null if no such attribute exists.

getDescriptor

AttributeDescriptor getDescriptor(int index)
                                  throws IndexOutOfBoundsException
Returns the attribute descriptor at the specified index.

This method is convenience for:

 return (AttributeDescriptor) ((List) getProperties()).get(index);
 

Parameters:
name - The name of the descriptor to return.
Returns:
The attribute descriptor at the specified index.
Throws:
IndexOutOfBoundsException - When the index is out of bounds.

getAttributeCount

int getAttributeCount()
Returns the number of attributes composing the feature type

This method is convenience for getAttributes().size().

Returns:
The number of attributes.

getTypes

List<AttributeType> getTypes()
Returns the types of all the attributes which make up the feature.

This method is convenience for:

 List types = new ArrayList();
 for (Property p : getProperties()) {
     types.add(p.getType());
 }
 return types;
 

Returns:
The list of attribute types.

getType

AttributeType getType(String name)
Returns the type of the attribute which matches the specified name.

This method is convenience for:

 return (AttributeType) getProperty(name).getType();
 

If there is no such attribute which matches name, null is returned.

Parameters:
name - The name of the attribute whose type to return.
Returns:
The attribute type matching the specified name, or null.

getType

AttributeType getType(Name name)
Returns the type of the attribute which matches the specified name.

This method is convenience for:

 return (AttributeType) getProperty(name).getType();
 

If there is no such attribute which matches name, null is returned.

Parameters:
name - The name of the attribute whose type to return.
Returns:
The attribute type matching the specified name, or null.

getType

AttributeType getType(int index)
                      throws IndexOutOfBoundsException
Returns the type of the attribute at the specified index.

This method is convenience for:

   return (AttributeType)((List)getProperties()).get(index)).getType();
 

Parameters:
index - The index of the attribute whose type to return.
Returns:
The attribute type at the specified index.
Throws:
IndexOutOfBoundsException - When the index is out of bounds.

indexOf

int indexOf(String name)
Returns the index of the attribute which matches the specified name.

-1 is returned in the instance there is no attribute matching the specified name.

Parameters:
name - The name of the attribute whose index to return.
Returns:
index of named attribute, or -1 if not found.

indexOf

int indexOf(Name name)
Returns the index of the attribute which matches the specified name.

-1 is returned in the instance there is no attribute matching the specified name.

Parameters:
name - The name of the attribute whose index to return.
Returns:
index of named attribute, or -1 if not found.


Copyright © 1996-2014 Geotools. All Rights Reserved.