public abstract class AbstractComplexEMFBinding extends AbstractComplexBinding
Provides implementations for:
Constructor and Description |
---|
AbstractComplexEMFBinding()
Default constructor.
|
AbstractComplexEMFBinding(EFactory factory)
Constructs the binding with an efactory.
|
AbstractComplexEMFBinding(EFactory factory,
Class type)
Constructs the binding with an efactory and a type.
|
Modifier and Type | Method and Description |
---|---|
protected EObject |
createEObject(Object value)
Reflectively creates an instance of the target object.
|
Object |
getProperty(Object object,
QName name)
Uses EMF reflection dynamically return the property with the specified name.
|
Class<?> |
getType()
Dynamically tries to determine the type of the object using emf naming conventions and the
name returned by
Binding.getTarget() . |
Object |
parse(ElementInstance instance,
Node node,
Object value)
Uses EMF reflection to create an instance of the EMF model object this binding maps to.
|
protected void |
setProperty(EObject eObject,
String property,
Object value,
boolean lax)
Internal method for reflectively setting the property of an eobject.
|
encode, getExecutionMode, getProperties, initialize, initializeChildContext
public AbstractComplexEMFBinding()
Creating the binding with this constructor will force it to perform a noop in the parse(ElementInstance, Node, Object)
method.
public AbstractComplexEMFBinding(EFactory factory)
factory
- Factory used to create model objects.public AbstractComplexEMFBinding(EFactory factory, Class type)
factory
- Factory used to create model objects.public Class<?> getType()
Binding.getTarget()
.
This implementation is a heuristic and is not guaranteed to work. Subclasses may override to provide the type explicitly.
public Object parse(ElementInstance instance, Node node, Object value) throws Exception
The properties of the resulting object are set using the the contents of node. In the case that the name of a child element or attributes does not match the name of a property on the object, subclasses may wish to extend this method and set the property explicitly.
parse
in interface ComplexBinding
parse
in class AbstractComplexBinding
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.Exception
- Strategy objects should not attempt to handle any exceptions.protected EObject createEObject(Object value) throws Exception
Exception
protected void setProperty(EObject eObject, String property, Object value, boolean lax)
Subclasses may override.
public Object getProperty(Object object, QName name) throws Exception
In the case that the name of a child element or attributes does not match the name of a property on the object, subclasses may wish to extend this method and set the property explicitly.
getProperty
in interface ComplexBinding
getProperty
in class AbstractComplexBinding
object
- The object being encoded.name
- The name of the property to obtain.null
.Exception
ComplexBinding.getProperty(Object, QName)
Copyright © 1996–2023 Geotools. All rights reserved.