org.geotools.feature.type
Class ComplexTypeImpl

Object
  extended by PropertyTypeImpl
      extended by AttributeTypeImpl
          extended by ComplexTypeImpl
All Implemented Interfaces:
AttributeType, ComplexType, PropertyType
Direct Known Subclasses:
FeatureTypeImpl

public class ComplexTypeImpl
extends AttributeTypeImpl
implements ComplexType

Base class for complex types.

Author:
gabriel, Ben Caradoc-Davies, CSIRO Exploration and Mining

Field Summary
 
Fields inherited from class AttributeTypeImpl
identified
 
Fields inherited from class PropertyTypeImpl
binding, description, isAbstract, name, restrictions, superType, userData
 
Constructor Summary
ComplexTypeImpl(Name name, Collection<PropertyDescriptor> properties, boolean identified, boolean isAbstract, List<Filter> restrictions, AttributeType superType, InternationalString description)
           
 
Method Summary
 boolean equals(Object o)
          Override of equals.
 Class<Collection<Property>> getBinding()
          The java class that values of properties of the property type are bound to.
 PropertyDescriptor getDescriptor(Name name)
          Describe a single property by name.
 PropertyDescriptor getDescriptor(String name)
          Describe a single property by unqualified name.
 Collection<PropertyDescriptor> getDescriptors()
          The property descriptor which compose the complex type.
 boolean isInline()
          Indicates ability of XPath to notice this attribute.
 String toString()
           
 
Methods inherited from class AttributeTypeImpl
createDefaultValue, getSuper, hashCode, isIdentified, parse
 
Methods inherited from class PropertyTypeImpl
getDescription, getName, getRestrictions, getUserData, isAbstract
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface AttributeType
getSuper, isIdentified
 
Methods inherited from interface PropertyType
getDescription, getName, getRestrictions, getUserData, hashCode, isAbstract
 

Constructor Detail

ComplexTypeImpl

public ComplexTypeImpl(Name name,
                       Collection<PropertyDescriptor> properties,
                       boolean identified,
                       boolean isAbstract,
                       List<Filter> restrictions,
                       AttributeType superType,
                       InternationalString description)
Method Detail

getBinding

public Class<Collection<Property>> getBinding()
Description copied from interface: PropertyType
The java class that values of properties of the property type are bound to.

This value is never null.

Specified by:
getBinding in interface ComplexType
Specified by:
getBinding in interface PropertyType
Overrides:
getBinding in class PropertyTypeImpl
Returns:
The binding of the property type.

getDescriptors

public Collection<PropertyDescriptor> getDescriptors()
Description copied from interface: ComplexType
The property descriptor which compose the complex type.

A complex type can be composed of attributes and associations which means this collection returns instances of AttributeDescriptor and AssociationDescriptor.

Specified by:
getDescriptors in interface ComplexType
Returns:
Collection of descriptors representing the composition of the complex type.

getDescriptor

public PropertyDescriptor getDescriptor(Name name)
Description copied from interface: ComplexType
Describe a single property by name.

This method returns null if no such property is found.

Specified by:
getDescriptor in interface ComplexType
Parameters:
name - The name of the property to get.
Returns:
The property matching the specified name, or null.

getDescriptor

public PropertyDescriptor getDescriptor(String name)
Description copied from interface: ComplexType
Describe a single property by unqualified name.

Note: Special care should be taken when using this method in the case that two properties with the same local name but different namespace uri exist. For this reason using ComplexType.getDescriptor(Name) is safer.

This method returns null if no such property is found.

Specified by:
getDescriptor in interface ComplexType
Parameters:
name - The name of the property to get.
Returns:
The property matching the specified name, or null.

isInline

public boolean isInline()
Description copied from interface: ComplexType
Indicates ability of XPath to notice this attribute.

This facility is used to "hide" an attribute from XPath searches, while the compelx contents will still be navigated no additional nesting will be considered. It will be as if the content were "folded" inline resulting in a flatter nesting structure.

Construct described using Java Interfaces:


 interface TestSample {
     String name;
     List measurement;
 }
 interface Measurement {
     long timestamp;
     Point point;
     long reading;
 }
 
The above is can hold the following information:

 [ name="survey1",
   measurements=(
       [timestamp=3,point=(2,3), reading=4200],
       [timestamp=9,point=(2,4), reading=445600],
   )
 ]
 
Out of the box this is represented to XPath as the following tree:

 root/name: survey1
 root/measurement[0]/timestamp:3
 root/measurement[0]/point: (2,3)
 root/measurement[0]/reading: 4200
 root/measurement[1]/timestamp:9
 root/measurement[2]/point: (2,4)
 root/measurement[3]/reading: 445600
 
By inlining Measurement we can achive the following:

 root/name: survey1
 root/timestamp[0]:3
 root/point[0]: (2,3)
 root/reading[0]: 4200
 root/timestamp[1]:9
 root/point[1]: (2,4)
 root/reading[1] 445600
 

Specified by:
isInline in interface ComplexType
Returns:
true if attribute is to be considered transparent by XPath queries

equals

public boolean equals(Object o)
Description copied from class: AttributeTypeImpl
Override of equals.

Specified by:
equals in interface PropertyType
Overrides:
equals in class AttributeTypeImpl
Parameters:
o - the object to be tested for equality.
Returns:
whether other is equal to this attribute Type.

toString

public String toString()
Overrides:
toString in class AttributeTypeImpl


Copyright © 1996-2014 Geotools. All Rights Reserved.