org.geotools.gml3.bindings
Class SubstitutionGroupXSAnyTypeBinding

Object
  extended by AbstractComplexBinding
      extended by XSAnyTypeBinding
          extended by SubstitutionGroupXSAnyTypeBinding
All Implemented Interfaces:
Binding, ComplexBinding

public class SubstitutionGroupXSAnyTypeBinding
extends XSAnyTypeBinding

A binding that searches the substitution group of XSD element children to find properties of a complex attribute. This is necessary to support the GML property type pattern, in which a property (a property-type type) contains a property that is a member of a substitution group. gml:AttributeType is the canonical example of the property type pattern.

gml:FeaturePropertyType is an example of the property type pattern that has an explicit binding FeaturePropertyTypeBinding, but because an application schema may define more property types whose names are not known at compile time, a binding like FeaturePropertyTypeBinding cannot be written. This class exists to handle these application-schema-defined property types.

Author:
Ben Caradoc-Davies, CSIRO Exploration and Mining
Module:
modules/extension/xsd-gml3 (gt-xsd-gml3.jar)

Field Summary
 
Fields inherited from interface Binding
AFTER, BEFORE, OVERRIDE
 
Constructor Summary
SubstitutionGroupXSAnyTypeBinding()
           
 
Method Summary
 Element encode(Object object, Document document, Element value)
          Subclasses should ovverride this method if need be, the default implementation returns value.
 List getProperties(Object object, XSDElementDeclaration element)
          Subclasses should override this method if need be, the default implementation returns null.
 
Methods inherited from class XSAnyTypeBinding
getExecutionMode, getTarget, getType, initialize, parse
 
Methods inherited from class AbstractComplexBinding
getProperties, getProperty, initializeChildContext
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SubstitutionGroupXSAnyTypeBinding

public SubstitutionGroupXSAnyTypeBinding()
Method Detail

getProperties

public List getProperties(Object object,
                          XSDElementDeclaration element)
                   throws Exception
Description copied from class: AbstractComplexBinding
Subclasses should override this method if need be, the default implementation returns null.

Note that this method only needs to be implemented for schema types which are open-ended in which the contents are not specifically specified by the schema.

Specified by:
getProperties in interface ComplexBinding
Overrides:
getProperties in class AbstractComplexBinding
Parameters:
object - the object being encoded.
Returns:
A list of the properties for the object.
Throws:
Exception
See Also:
AbstractComplexBinding.getProperties(java.lang.Object, org.eclipse.xsd.XSDElementDeclaration)

encode

public Element encode(Object object,
                      Document document,
                      Element value)
               throws Exception
Description copied from class: AbstractComplexBinding
Subclasses should ovverride this method if need be, the default implementation returns value.

Specified by:
encode in interface ComplexBinding
Overrides:
encode in class AbstractComplexBinding
Parameters:
object - The object being encoded.
document - The document containing the encoded element.
value - The object as encoded by the parent binding.
Returns:
The element for the objcet being encoded, or null
Throws:
Exception
See Also:
AbstractComplexBinding.encode(java.lang.Object, org.w3c.dom.Document, org.w3c.dom.Element)


Copyright © 1996-2009 Geotools. All Rights Reserved.