Class SimpleContentComplexEMFBinding

All Implemented Interfaces:
Binding, ComplexBinding, InstanceBinding
Direct Known Subclasses:
ElementSetNameTypeBinding, SimpleLiteralBinding

public class SimpleContentComplexEMFBinding extends ComplexEMFBinding
A binding implementation which handles the case of a complex type with simple content.

Model objects typically have a single "value" getter/setter. This binding calls that method reflectively on the class created by the super type.

Author:
Justin Deoliveira, The Open Planning Project
See Also:
  • Constructor Details

    • SimpleContentComplexEMFBinding

      public SimpleContentComplexEMFBinding(EFactory factory, QName target)
  • Method Details

    • parse

      public Object parse(ElementInstance instance, Node node, Object value) throws Exception
      Takes value and sets its to the object value.
      Specified by:
      parse in interface ComplexBinding
      Overrides:
      parse in class AbstractComplexEMFBinding
      Parameters:
      instance - The element being parsed.
      node - The node in the parse tree representing the element being parsed.
      value - The result of the parse from another strategy in the type hierarchy. Could be null if this is the first strategy being executed.
      Returns:
      The parsed object, or null if the component could not be parsed.
      Throws:
      Exception - Strategy objects should not attempt to handle any exceptions.
    • encode

      public Element encode(Object object, Document document, Element value) throws Exception
      Calls getValue() and appends the result as child text of 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