public interface ComplexAttribute extends Attribute
ComplexType
which is composed of other properties.
A complex attribute is a container for other properties (attributes + associations). The value
of a complex attribute is a collection of those contained properties.
getValue()
method returns a collection of the properties contained by the complex
attribute.
ComplexAttribute attribute = ...; //loop through all the properties for (Property p : attribute.getValue(); ) { // do something with the property }
Name
with the getProperties(Name)
and getProperties(String)
methods.
ComplexAttribute attribute = ...; //loop through all the "foo" attributes for ( Property p : attribute.getProperties( "foo" ) ) { p.getName().getLocalPart() == "foo"; }
getProperty(Name)
and getProperty(String)
methods can be used to
get direct access to the property.
ComplexAttribute attribute = ...; //get the single foo attribute Property foo = attribute.getProperty( "foo" );
For instance.the expression "//foo"
should return all the properties named "foo".
Or the expression "foo/bar"
should return the "bar" property nested inside of the
"foo" property. In these cases, an Expression
must be used:
ComplexAttribute attribute = ...; //get the 'foo/bar' property FilterFactory factory = ...; PropertyName xpath = factory.property( "foo/bar" ); Property bar = xpath.evaluate( attribute );
Modifier and Type | Method and Description |
---|---|
Collection<Property> |
getProperties()
Complete collection of properties.
|
Collection<Property> |
getProperties(Name name)
Returns a subset of the properties of the complex attribute which match the specified name.
|
Collection<Property> |
getProperties(String name)
Returns a subset of the properties of the complex attribute which match the specified name.
|
Property |
getProperty(Name name)
Returns single property of the complex attribute which matches the specified name.
|
Property |
getProperty(String name)
Returns single property of the complex attribute which matches the specified name.
|
ComplexType |
getType()
Override of
Attribute.getType() which type narrows to ComplexType . |
Collection<? extends Property> |
getValue()
Override of
Property.getValue() which returns the collection of Property
which make up the value of the complex attribute. |
void |
setValue(Collection<Property> values)
Sets the contained properties of the complex attribute.
|
void |
validate()
Check the properties against the constraints provided by their AttributeDescriptors.
|
getDescriptor, getIdentifier
getName, getUserData, isNillable, setValue
ComplexType getType()
Attribute.getType()
which type narrows to ComplexType
.getType
in interface Attribute
getType
in interface Property
Attribute.getType()
void setValue(Collection<Property> values)
The values should match the structure defined by getDescriptor()
.
Collection<? extends Property> getValue()
Property.getValue()
which returns the collection of Property
which make up the value of the complex attribute.Collection<Property> getProperties(Name name)
The name parameter is matched against each contained Property.getName()
,
those that are equal are returned.
name
- The name of the properties to return.Property getProperty(Name name)
Note: This method is a convenience and care should be taken when calling it if more then a
single property matches name. In such a case the first encountered property in which
Property.getName()
is equal to name is returned, and no order is guaranteed.
This method is a safe convenience for: getProperties(name).iterator().next()
.
In the event that no property matches the specified name null
is returned.
name
- The name of the property to return.null
.Collection<Property> getProperties(String name)
This method is a convenience for getProperties(Name)
in which Name.getNamespaceURI()
is null
.
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 getProperties(Name)
is safer.
name
- The local name of the properties to return.getProperties(Name)
Collection<Property> getProperties()
This method is a convenience method for calling (Collection
Property getProperty(String name)
This method is a convenience for getProperty(Name)
in which Name.getNamespaceURI()
is null
.
Note: This method is a convenience and care should be taken when calling it if more then a
single property matches name. In such a case the first encountered property in which
Property.getName()
is matches name is returned, and no order is guaranteed.
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 getProperties(Name)
is safer.
name
- The local name of the property to return.null
.void validate() throws IllegalAttributeException
Please note this method checks minOccurs and maxOccurs information; and calls each Attribute.validate on each entry in turn (in order to check isNillable, binding and restrictions).
validate
in interface Attribute
IllegalAttributeException
- If any attribute fails validationCopyright © 1996–2019 Geotools. All rights reserved.