org.geotools.gml3.bindings
Class ComplexSupportXSAnyTypeBinding

java.lang.Object
  extended by org.geotools.xml.AbstractComplexBinding
      extended by org.geotools.xs.bindings.XSAnyTypeBinding
          extended by org.geotools.gml3.bindings.ComplexSupportXSAnyTypeBinding
All Implemented Interfaces:
Binding, ComplexBinding

public class ComplexSupportXSAnyTypeBinding
extends XSAnyTypeBinding

A replacement for XSAnyTypeBinding that adds support for ComplexAttribute and related behaviours.

This 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.

This class supports the encoding of XML complexType with simpleContent through extraction of a simpleContent property, as well as encoding XML attributes stored in the UserData map.

Author:
Ben Caradoc-Davies, CSIRO Earth Science and Resource Engineering

Field Summary
 
Fields inherited from interface org.geotools.xml.Binding
AFTER, BEFORE, OVERRIDE
 
Constructor Summary
ComplexSupportXSAnyTypeBinding(XSDIdRegistry idRegistry)
           
 
Method Summary
 org.w3c.dom.Element encode(java.lang.Object object, org.w3c.dom.Document document, org.w3c.dom.Element value)
          Subclasses should ovverride this method if need be, the default implementation returns value.
 java.util.List getProperties(java.lang.Object object, org.eclipse.xsd.XSDElementDeclaration element)
          Subclasses should override this method if need be, the default implementation returns null.
 java.lang.Object getProperty(java.lang.Object object, javax.xml.namespace.QName name)
          Subclasses should override this method if need be, the default implementation returns null.
 
Methods inherited from class org.geotools.xs.bindings.XSAnyTypeBinding
getExecutionMode, getTarget, getType, initialize, parse
 
Methods inherited from class org.geotools.xml.AbstractComplexBinding
getProperties, initializeChildContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComplexSupportXSAnyTypeBinding

public ComplexSupportXSAnyTypeBinding(XSDIdRegistry idRegistry)
Method Detail

getProperty

public java.lang.Object getProperty(java.lang.Object object,
                                    javax.xml.namespace.QName name)
                             throws java.lang.Exception
Description copied from class: AbstractComplexBinding
Subclasses should override this method if need be, the default implementation returns null.

Specified by:
getProperty in interface ComplexBinding
Overrides:
getProperty in class AbstractComplexBinding
Parameters:
object - The object being encoded.
name - The name of the property to obtain.
Returns:
The value of the property, or null.
Throws:
java.lang.Exception
See Also:
AbstractComplexBinding.getProperty(java.lang.Object, javax.xml.namespace.QName)

getProperties

public java.util.List getProperties(java.lang.Object object,
                                    org.eclipse.xsd.XSDElementDeclaration element)
                             throws java.lang.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:
java.lang.Exception
See Also:
AbstractComplexBinding.getProperties(java.lang.Object, org.eclipse.xsd.XSDElementDeclaration)

encode

public org.w3c.dom.Element encode(java.lang.Object object,
                                  org.w3c.dom.Document document,
                                  org.w3c.dom.Element value)
                           throws java.lang.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:
java.lang.Exception
See Also:
AbstractComplexBinding.encode(java.lang.Object, org.w3c.dom.Document, org.w3c.dom.Element)


Copyright © 1996-2010 Geotools. All Rights Reserved.