Class ComplexTypeProxy
- Object
-
- AttributeTypeProxy
-
- ComplexTypeProxy
-
- All Implemented Interfaces:
AttributeType
,ComplexType
,PropertyType
- Direct Known Subclasses:
FeatureTypeProxy
,NonFeatureTypeProxy
public class ComplexTypeProxy extends AttributeTypeProxy implements ComplexType
- Since:
- 2.4
- Author:
- Gabriel Roldan (Axios Engineering)
-
-
Constructor Summary
Constructors Constructor Description ComplexTypeProxy(Name typeName, Map registry)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class<Collection<Property>>
getBinding()
The java class that values of properties of the property type are bound to.PropertyDescriptor
getDescriptor(String name)
Describe a single property by unqualified name.PropertyDescriptor
getDescriptor(Name name)
Describe a single property by name.Collection<PropertyDescriptor>
getDescriptors()
The property descriptor which compose the complex type.boolean
isInline()
Indicates ability of XPath to notice this attribute.-
Methods inherited from class AttributeTypeProxy
equals, getDescription, getName, getOperations, getRestrictions, getSubject, getSuper, getUserData, hashCode, isAbstract, isIdentified
-
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface AttributeType
getSuper, isIdentified
-
Methods inherited from interface PropertyType
equals, getDescription, getName, getRestrictions, getUserData, hashCode, isAbstract
-
-
-
-
Method Detail
-
getDescriptor
public PropertyDescriptor getDescriptor(Name name)
Description copied from interface:ComplexType
Describe a single property by name.This method returns
null
if no such property is found.- Specified by:
getDescriptor
in interfaceComplexType
- Parameters:
name
- The name of the property to get.- Returns:
- The property matching the specified name, or
null
.
-
getDescriptor
public PropertyDescriptor getDescriptor(String name)
Description copied from interface:ComplexType
Describe a single property by unqualified name.Note: Special care should be taken when using this method in the case that two properties with the same local name but different namespace uri exist. For this reason using
ComplexType.getDescriptor(Name)
is safer.This method returns
null
if no such property is found.- Specified by:
getDescriptor
in interfaceComplexType
- Parameters:
name
- The name of the property to get.- Returns:
- The property matching the specified name, or
null
.
-
getDescriptors
public Collection<PropertyDescriptor> getDescriptors()
Description copied from interface:ComplexType
The property descriptor which compose the complex type.A complex type can be composed of attributes and associations which means this collection returns instances of
AttributeDescriptor
andAssociationDescriptor
.- Specified by:
getDescriptors
in interfaceComplexType
- Returns:
- Collection of descriptors representing the composition of the complex type.
-
isInline
public boolean isInline()
Description copied from interface:ComplexType
Indicates ability of XPath to notice this attribute.This facility is used to "hide" an attribute from XPath searches, while the compelx contents will still be navigated no additional nesting will be considered. It will be as if the content were "folded" inline resulting in a flatter nesting structure.
Construct described using Java Interfaces:
The above is can hold the following information:interface TestSample { String name; List
measurement; } interface Measurement { long timestamp; Point point; long reading; }
Out of the box this is represented to XPath as the following tree:[ name="survey1", measurements=( [timestamp=3,point=(2,3), reading=4200], [timestamp=9,point=(2,4), reading=445600], ) ]
By inlining Measurement we can achive the following:root/name: survey1 root/measurement[0]/timestamp:3 root/measurement[0]/point: (2,3) root/measurement[0]/reading: 4200 root/measurement[1]/timestamp:9 root/measurement[2]/point: (2,4) root/measurement[3]/reading: 445600
root/name: survey1 root/timestamp[0]:3 root/point[0]: (2,3) root/reading[0]: 4200 root/timestamp[1]:9 root/point[1]: (2,4) root/reading[1] 445600
- Specified by:
isInline
in interfaceComplexType
- Returns:
- true if attribute is to be considered transparent by XPath queries
-
getBinding
public Class<Collection<Property>> getBinding()
Description copied from interface:PropertyType
The java class that values of properties of the property type are bound to.This value is never
null
.- Specified by:
getBinding
in interfaceComplexType
- Specified by:
getBinding
in interfacePropertyType
- Overrides:
getBinding
in classAttributeTypeProxy
- Returns:
- The binding of the property type.
-
-