Class AbstractComplexEMFBinding
- Object
-
- AbstractComplexBinding
-
- AbstractComplexEMFBinding
-
- All Implemented Interfaces:
Binding
,ComplexBinding
- Direct Known Subclasses:
_DataBinding
,_DCPBinding
,_ExceptionReportBinding
,_HTTPBinding
,_LogicalOperatorsBinding
,_OperationBinding
,_OperationsMetadataBinding
,_ServiceIdentificationBinding
,_ServiceProviderBinding
,_XlinkPropertyNameBinding
,AcceptFormatsTypeBinding
,AcceptVersionsTypeBinding
,ActionTypeBinding
,AddressTypeBinding
,ArgumentsTypeBinding
,ArgumentTypeBinding
,AvailableFunctionsTypeBinding
,AvailableFunctionTypeBinding
,BaseRequestTypeBinding
,BinaryPayloadBinding
,CapabilitiesBaseType_LanguagesBinding
,CapabilitiesBaseTypeBinding
,CapabilitiesBinding
,CapabilityBinding
,CodeTypeBinding
,ComparisonOperatorsTypeBinding
,ComparisonOperatorTypeBinding
,ComplexEMFBinding
,ConformanceTypeBinding
,ContactTypeBinding
,ContentsTypeBinding
,DCPTypeBinding
,DeleteElementTypeBinding
,DescribeEOCoverageSetBinding
,DescribeFeatureTypeTypeBinding
,DescriptionTypeBinding
,DescriptionTypeOws11Binding
,DimensionNameValueBinding
,DomainTypeBinding
,ExceptionTypeBinding
,ExecuteRequestTypeBinding
,FeatureCollectionTypeBinding
,FeatureCollectionTypeBinding
,FeatureInfoResponseBinding
,FeaturesLockedTypeBinding
,FeaturesNotLockedTypeBinding
,FeatureTypeListTypeBinding
,FeatureTypeListTypeBinding
,FeatureTypeType_NoSRSBinding
,FeatureTypeTypeBinding
,FeatureTypeTypeBinding
,Filter_CapabilitiesTypeBinding
,GeometryOperandsType_GeometryOperandBinding
,GeometryOperandsTypeBinding
,GetCapabilitiesBinding
,GetCapabilitiesTypeBinding
,GetCapabilitiesTypeBinding
,GetFeatureInfoBinding
,GetFeatureTypeBinding
,GetFeatureWithLockTypeBinding
,GetGmlObjectTypeBinding
,GetTileBinding
,GMLObjectTypeListTypeBinding
,GMLObjectTypeTypeBinding
,Id_CapabilitiesTypeBinding
,IdentificationTypeBinding
,InputDescriptionTypeBinding
,InsertedFeatureTypeBinding
,InsertElementTypeBinding
,InsertResultsTypeBinding
,InsertResultTypeBinding
,InsertTypeBinding
,KeywordsTypeBinding
,LatLongBoundingBoxBinding
,LayerTypeBinding
,LiteralDataType_LiteralDataDomainBinding
,LockFeatureResponseTypeBinding
,LockFeatureTypeBinding
,LockTypeBinding
,MetadataTypeBinding
,MetadataTypeBinding
,MetadataURLTypeBinding
,MetadataURLTypeBinding
,NativeTypeBinding
,OnlineResourceTypeBinding
,OperationsTypeBinding
,OperationsTypeBinding
,OutputDefinitionTypeBinding
,OutputDescriptionTypeBinding
,OutputFormatListTypeBinding
,ParameterTypeBinding
,PropertyTypeBinding
,PropertyTypeBinding
,QueryExpressionTextTypeBinding
,QueryTypeBinding
,RequestMethodTypeBinding
,ResourceIdentifierTypeBinding
,ResponsiblePartySubsetTypeBinding
,ResponsiblePartyTypeBinding
,Scalar_CapabilitiesTypeBinding
,SectionsBinding
,SectionsTypeBinding
,ServiceTypeBinding
,Spatial_CapabilitiesTypeBinding
,SpatialOperatorsTypeBinding
,SpatialOperatorTypeBinding
,TelephoneTypeBinding
,TextPayloadBinding
,ThemesBinding
,TileMatrixLimitsBinding
,TileMatrixSetLimitsBinding
,TileMatrixSetLinkBinding
,TransactionResponseTypeBinding
,TransactionResultsTypeBinding
,TransactionResultTypeBinding
,TransactionSummaryTypeBinding
,TransactionTypeBinding
,TransactionTypeBinding
,UpdateElementTypeBinding
,URLTemplateTypeBinding
,ValueCollectionTypeBinding
,ValueReferenceTypeBinding
,WFS_CapabilitiesTypeBinding
,WFS_CapabilitiesTypeBinding
,WFS_LockFeatureResponseTypeBinding
,WFS_TransactionResponseTypeBinding
public abstract class AbstractComplexEMFBinding extends AbstractComplexBinding
Base class for complex bindings which map to an EMF model class.Provides implementations for:
- Author:
- Justin Deoliveira, The Open Planning Project, jdeolive@openplans.org
-
-
Constructor Summary
Constructors Constructor 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 byBinding.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.-
Methods inherited from class AbstractComplexBinding
encode, getExecutionMode, getProperties, initialize, initializeChildContext
-
-
-
-
Constructor Detail
-
AbstractComplexEMFBinding
public AbstractComplexEMFBinding()
Default constructor.Creating the binding with this constructor will force it to perform a noop in the
parse(ElementInstance, Node, Object)
method.
-
AbstractComplexEMFBinding
public AbstractComplexEMFBinding(EFactory factory)
Constructs the binding with an efactory.- Parameters:
factory
- Factory used to create model objects.
-
AbstractComplexEMFBinding
public AbstractComplexEMFBinding(EFactory factory, Class type)
Constructs the binding with an efactory and a type.- Parameters:
factory
- Factory used to create model objects.
-
-
Method Detail
-
getType
public Class<?> getType()
Dynamically tries to determine the type of the object using emf naming conventions and the name returned byBinding.getTarget()
.This implementation is a heuristic and is not guaranteed to work. Subclasses may override to provide the type explicitly.
- Returns:
- The java type this binding maps to.
-
parse
public Object parse(ElementInstance instance, Node node, Object value) throws Exception
Uses EMF reflection to create an instance of the EMF model object this binding maps to.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.
- Specified by:
parse
in interfaceComplexBinding
- Overrides:
parse
in classAbstractComplexBinding
- 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.
-
createEObject
protected EObject createEObject(Object value) throws Exception
Reflectively creates an instance of the target object.- Throws:
Exception
-
setProperty
protected void setProperty(EObject eObject, String property, Object value, boolean lax)
Internal method for reflectively setting the property of an eobject.Subclasses may override.
-
getProperty
public Object getProperty(Object object, QName name) throws Exception
Uses EMF reflection dynamically return the property with the specified name.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.
- Specified by:
getProperty
in interfaceComplexBinding
- Overrides:
getProperty
in classAbstractComplexBinding
- Parameters:
object
- The object being encoded.name
- The name of the property to obtain.- Returns:
- The value of the property, or
null
. - Throws:
Exception
- See Also:
ComplexBinding.getProperty(Object, QName)
-
-