Package org.geotools.api.feature.type
Interface PropertyDescriptor
- All Known Subinterfaces:
AssociationDescriptor,AttributeDescriptor,ChoiceAttributeType,ChoiceGeometryType,GeometryDescriptor,Operation
- All Known Implementing Classes:
AssociationDescriptorImpl,AttributeDescriptorImpl,ChoiceGeometryTypeImpl,GeometryDescriptorImpl,PropertyDescriptorImpl
public interface PropertyDescriptor
Describes a Property, and how it relates to its containing entity, which is often a
In the above, the element declaration named "foo" maps to a property descriptor. From the above schema, the following property descriptor would result:
ComplexAttribute. A property descriptor defines the following about the property:
- type of the property
- the name of the property
- number of allowable occurrences of the property
- nilability of the property
The concept of a descriptor is similar to that of a element declaration in xml. Consider the following xml schema definition:
<complexType name="someComplexType">
<sequence>
<element name="foo" minOccurs="2" maxOccurs="4" type="xs:string" nillable="false"/>
<sequence>
<complexType>
In the above, the element declaration named "foo" maps to a property descriptor. From the above schema, the following property descriptor would result:
//the complex type
ComplexType complexType = ...;
//get the descriptor
PropertyDescriptor descriptor = complexType.getProperty( "foo" );
//make the following assertions
descriptor.getName().getLocalPart().equals( "foo" );
descriptor.getType().getName().getNamespaceURI().equals( "http://www.w3.org/2001/XMLSchema" )
descriptor.getType().getName().getLocalPart().equals( "string" );
descriptor.getMinOccurs() == 2;
descriptor.getMaxOccurs() == 4;
descriptor.isNillable() == true;
//the complex attribute
ComplexAttribute complexAttribute = ...
complexAttribute.getType() == complexType;
//get the properties
Collection properties = complexAttribute.getProperties( "foo" );
//make assertions about properties
properties.size() >= 2; //minOccurs = 2
properties.size() <= 4; //maxOccurs = 4
for ( Property p : properties ) {
p.getDescriptor() == descriptor
p.getValue() != null; //nilable = false
p.getType().getBinding() == String.class; //type = xs:string
p.getValue() instanceof String; //type = xs:string
}
- Author:
- Jody Garnett, Refractions Research, Justin Deoliveira, The Open Planning Project
-
Method Summary
Modifier and TypeMethodDescriptionintThe maximum number of occurrences of the property within its containing entity.intThe minimum number of occurrences of the property within its containing entity.getName()The name of the property defined by the descriptor, with respect to its containing type or entity..getType()The type of the property defined by the descriptor.A map of "user data" which enables applications to store "application-specific" information against a property descriptor.booleanFlag indicating ifnullis an allowable value for the property.
-
Method Details
-
getType
PropertyType getType()The type of the property defined by the descriptor.This value should never be
null. The type contains information about the value of the property such as its java class. -
getName
Name getName()The name of the property defined by the descriptor, with respect to its containing type or entity..This value may be
nullin some instances. Also note that this is not the same name asgetType().getName(). The former is the name of the instance, the latter is the name of the type of the instance. -
getMinOccurs
int getMinOccurs()The minimum number of occurrences of the property within its containing entity.This value is always an integer greater than or equal to zero.
- Returns:
- An integer >= 0
-
getMaxOccurs
int getMaxOccurs()The maximum number of occurrences of the property within its containing entity.This value is a positive integer. A value of
-1means that the max number of occurrences is unbounded.- Returns:
- An integer >= 0, or -1.
-
isNillable
boolean isNillable()Flag indicating ifnullis an allowable value for the property.- Returns:
trueif the property is allowed to benull, otherwisefalse.
-
getUserData
A map of "user data" which enables applications to store "application-specific" information against a property descriptor.- Returns:
- A map of user data.
-