Package com.luciad.format.gml31.model
Class TLcdGML31AbstractFeature
java.lang.Object
com.luciad.datamodel.TLcdDataObject
com.luciad.datamodel.TLcdFeaturedDataObject
com.luciad.format.gml31.model.TLcdGML31AbstractGML
com.luciad.format.gml31.model.TLcdGML31AbstractFeature
- All Implemented Interfaces:
ILcdDataObject
,ILcdBounded
,ILcdShape
,ILcdShapeList
,ILcdCloneable
,ILcdDeepCloneable
,ILcdFeatured
,ILcdInvalidateable
,ILcdSelfDescribedFeatured
,Serializable
,Cloneable
- Direct Known Subclasses:
TLcdGML31AbstractCoverage
,TLcdGML31AbstractFeatureCollection
,TLcdGML31BoundedFeature
,TLcdGML31DynamicFeature
,TLcdGML31Model
,TLcdGML31Observation
public class TLcdGML31AbstractFeature
extends TLcdGML31AbstractGML
implements ILcdShapeList, ILcdInvalidateable
Default implementation for Java domain model classes modeling XML types extending of
gml:AbstractFeatureType
.
gml:AbstractFeatureType
is the XML root type for all XML types modeling a real-world
entity, e.g., a city, a building, a road, ... . A GML feature collection is typically mapped on
an ILcdModel
in LuciadLightspeed, and the model's elements will be all elements in the GML
feature collection with a type extending of gml:AbstractFeatureType
.
The contents of a GML feature can be accessed via two interfaces:
- The
ILcdDataObject
interface provides access to all properties of this GML feature. -
The
ILcdShapeList
interface provides access to the geometries contained in this feature. The list of shapes will be lazily computed in thecollectShapes()
method, the first time it is needed. This method can be overridden in extensions to tweak which geometries are made available via theILcdShapeList
interface of this class.
gml:AbstractFeatureType
,
used
by the GML model decoder, will return instances of this class!
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final TLcdDataProperty
Data property that maps to theboundedBy
element.static final TLcdDataProperty
Data property that maps to thelocation
element.Fields inherited from class com.luciad.format.gml31.model.TLcdGML31AbstractGML
DESCRIPTION_PROPERTY, ID_PROPERTY, META_DATA_PROPERTY_PROPERTY, NAME_PROPERTY
-
Constructor Summary
ConstructorDescriptionCreates a new, emptyTLcdGML31AbstractFeature
. -
Method Summary
Modifier and TypeMethodDescriptionclone()
Returns a deep clone of this object.Returns a deep clone of this object.Override this method to collect all shapes that needs to be included in the ILcdShapeList implementation of this feature.boolean
contains2D
(double aX, double aY) Checks whether thisILcdShape
contains the given point in the 2D space.boolean
contains2D
(ILcdPoint aPoint) Checks whether thisILcdShape
contains the givenILcdPoint
in the 2D space.boolean
contains3D
(double aX, double aY, double aZ) Checks whether thisILcdShape
contains the given point in the 3D space.boolean
contains3D
(ILcdPoint aPoint) Checks whether thisILcdShape
contains the givenILcdPoint
in the 3D space.Returns the value of the property that maps to theboundedBy
element.Returns theILcdBounds
by which the geometry of thisILcdBounded
object is bounded.Returns the focus point of thisILcdShape
.Returns the value of the property that maps to thelocation
element.getShape
(int aIndex) Returns theILcdShape
at the given index.int
Returns the number ofILcdShape
objects in the list.void
Invalidates all cached values of this object.void
setBoundedBy
(TLcdGML31BoundingShape aValue) Sets the value of the property that maps to theboundedBy
element.void
setLocation
(Object aValue) Sets the value of the property that maps to thelocation
element.void
Notifies thisILcdShapeList
that some (possibly all) of its shapes have changed.Methods inherited from class com.luciad.format.gml31.model.TLcdGML31AbstractGML
getDescription, getId, getMetaDataProperty, getName, setDescription, setId
Methods inherited from class com.luciad.datamodel.TLcdFeaturedDataObject
canSetFeature, getFeature, getFeature, getFeatureCount, getFeaturedDescriptor, setFeature, setFeature
Methods inherited from class com.luciad.datamodel.TLcdDataObject
getDataType, getValue, getValue, hasValue, hasValue, setValue, setValue, toString
-
Field Details
-
BOUNDED_BY_PROPERTY
Data property that maps to theboundedBy
element. The possible values for this property are instances ofTLcdGML31BoundingShape
. -
LOCATION_PROPERTY
Data property that maps to thelocation
element. The possible values for this property are instances ofTLcdGML31LocationProperty
.
-
-
Constructor Details
-
TLcdGML31AbstractFeature
Creates a new, emptyTLcdGML31AbstractFeature
. The specifiedTLcdDataType
should be a valid type, that is, it should inherit fromgml:AbstractFeatureType
- it may additionally add its own features. See thepackage documentation
for more information on how the XML types are mapped on a data object structure.- Parameters:
aType
- theTLcdDataType
describing this feature.
-
-
Method Details
-
collectShapes
Override this method to collect all shapes that needs to be included in the ILcdShapeList implementation of this feature. The default implementation recursively searches through all features of thisILcdDataObject
for all features implementingILcdShape
.- Returns:
- the list of shapes contained in this object.
-
shapesChanged
public void shapesChanged()Notifies thisILcdShapeList
that some (possibly all) of its shapes have changed. This method should be called whenever a shape in this GML feature has been changed, or when a shape is inserted in or removed in one the properties of this GML feature. This method is the same asinvalidateObject()
. -
getShapeCount
public int getShapeCount()Description copied from interface:ILcdShapeList
Returns the number ofILcdShape
objects in the list.- Specified by:
getShapeCount
in interfaceILcdShapeList
- Returns:
- the number of
ILcdShape
objects in the list.
-
getShape
Description copied from interface:ILcdShapeList
Returns theILcdShape
at the given index.- Specified by:
getShape
in interfaceILcdShapeList
- Parameters:
aIndex
- a valid index in the list ofILcdShape
objects.- Returns:
- the
ILcdShape
at the given index. - Throws:
IndexOutOfBoundsException
- when the index is not valid.
-
contains2D
Description copied from interface:ILcdShape
Checks whether thisILcdShape
contains the givenILcdPoint
in the 2D space. Only the first two dimensions of theILcdShape
and theILcdPoint
are considered.- Specified by:
contains2D
in interfaceILcdShape
- Parameters:
aPoint
- theILcdPoint
to test.- Returns:
- the boolean result of the containment test.
- See Also:
-
contains3D
Description copied from interface:ILcdShape
Checks whether thisILcdShape
contains the givenILcdPoint
in the 3D space.- Specified by:
contains3D
in interfaceILcdShape
- Parameters:
aPoint
- theILcdPoint
to test.- Returns:
- the boolean result of the containment test.
- See Also:
-
contains3D
public boolean contains3D(double aX, double aY, double aZ) Description copied from interface:ILcdShape
Checks whether thisILcdShape
contains the given point in the 3D space.- Specified by:
contains3D
in interfaceILcdShape
- Parameters:
aX
- the x coordinate of the point.aY
- the y coordinate of the point.aZ
- the z coordinate of the point.- Returns:
- the boolean result of the containment test.
-
contains2D
public boolean contains2D(double aX, double aY) Description copied from interface:ILcdShape
Checks whether thisILcdShape
contains the given point in the 2D space. Only the first two dimensions of theILcdShape
are considered.- Specified by:
contains2D
in interfaceILcdShape
- Parameters:
aX
- the x coordinate of the point.aY
- the y coordinate of the point.- Returns:
- the boolean result of the containment test.
-
getFocusPoint
Description copied from interface:ILcdShape
Returns the focus point of thisILcdShape
.- Specified by:
getFocusPoint
in interfaceILcdShape
- Returns:
- the focus point of this
ILcdShape
.
-
clone
Description copied from class:TLcdDataObject
Returns a deep clone of this object. This method delegates toTLcdDataObject.clone(Map)
.- Specified by:
clone
in interfaceILcdCloneable
- Overrides:
clone
in classTLcdDataObject
- Returns:
- a deep clone of this object
- See Also:
-
clone
Description copied from class:TLcdDataObject
Returns a deep clone of this object. If the clone is not already present in the dictionary, a new instance if created as follows:- First, a new instance is created using Java's clone() mechanism.
- Then, all properties of this object are cloned and set on the newly created
instance. A property is cloned as follows:
- If the property value is an
ILcdDataObject
, the value is cloned by first creating a new instance via thevalue.getDataType().newInstance()
method, and then cloning its properties one by one. - If the value implements
ILcdDeepCloneable
orILcdCloneable
then this interface is used to clone the value. - Otherwise, the property value is copied by reference.
- If the property value is an
- Specified by:
clone
in interfaceILcdDeepCloneable
- Overrides:
clone
in classTLcdDataObject
- Parameters:
aObjectDictionary
- the Object dictionary that keeps track of the objects for which a clone has already been made, and their corresponding clone Object.- Returns:
- a deep clone of this object
-
getBounds
Description copied from interface:ILcdBounded
Returns theILcdBounds
by which the geometry of thisILcdBounded
object is bounded.If the geometry does not allow retrieving valid bounds (for example a polyline with 0 points) the return value is unspecified. It is highly recommended to return an
undefined
bounds. You can create undefined bounds using the default constructors ofTLcdLonLatBounds
orTLcdXYBounds
.- Specified by:
getBounds
in interfaceILcdBounded
- Returns:
- the
ILcdBounds
by which the geometry of thisILcdBounded
object is bounded.
-
invalidateObject
public void invalidateObject()Description copied from interface:ILcdInvalidateable
Invalidates all cached values of this object. Call this method whenever one or more of this object's compositing values has been changed, to notify this object it needs to recompute its cached values.- Specified by:
invalidateObject
in interfaceILcdInvalidateable
-
getBoundedBy
Returns the value of the property that maps to theboundedBy
element.- Returns:
- the value of the
BOUNDED_BY_PROPERTY
property.
-
setBoundedBy
Sets the value of the property that maps to theboundedBy
element.- Parameters:
aValue
- the value to set for theBOUNDED_BY_PROPERTY
property.
-
getLocation
Returns the value of the property that maps to thelocation
element.Deprecated in GML 3.1.0
- Returns:
- the value of the
LOCATION_PROPERTY
property. - See Also:
-
setLocation
Sets the value of the property that maps to thelocation
element.Deprecated in GML 3.1.0
- Parameters:
aValue
- the value to set for theLOCATION_PROPERTY
property.
-