Class TLcdFeaturedSingleShapeList
- All Implemented Interfaces:
ILcdDataObject
,ILcdBounded
,ILcdEditableShapeList
,ILcdShape
,ILcdShapeList
,ILcdCloneable
,ILcdFeatured
,Serializable
,Cloneable
ILcdDataobject
and
ILcdShapeList
that contains a single shape.
This class implements ILcdEditableShapeList
.
It however only allows at most one shape to be part of the shape list. In case more then one shape would
be added, an IllegalArgumentException
is thrown.
It also implements ILcdFeatured
. Features are directly mapped one-on-one on
data properties.
An optional index can specify the feature that determines the identity of
the object (through equals
and hashCode
). This index
is typically derived from the data type using the TLcdPrimaryKeyAnnotation
.
Because of this, this class is mostly useful when used to represent objects that are
lazily retrieved from a database.
- See Also:
-
Constructor Summary
ConstructorDescriptionTLcdFeaturedSingleShapeList
(TLcdFeaturedSingleShapeList aFeaturedSingleShapeList) Constructs aTLcdSpatialShape
.TLcdFeaturedSingleShapeList
(ILcdShape aShape, Object[] aFeatures) Deprecated.TLcdFeaturedSingleShapeList
(ILcdShape aShape, Object[] aFeatures, int aPrimaryFeatureIndex) Deprecated.TLcdFeaturedSingleShapeList
(ILcdShape aShape, Object[] aFeatures, TLcdDataType aDataType) Constructs aTLcdFeaturedSingleShapeList
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Inserts the specified shape at the specified position in thisILcdShapeList
.void
Appends the specified shape to the end of thisILcdShapeList
.void
Appends the specified array of shapes to the end of thisILcdShapeList
.void
Removes all of the shapes from thisILcdShapeList
.clone()
MakesObject.clone()
public.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.boolean
Returns theILcdBounds
by which the geometry of thisILcdBounded
object is bounded.Returns the type of this data object.Returns the focus point of thisILcdShape
.Returns the primary feature, ornull
if there is no such feature.int
Returns the index of the primary feature, which identifies the object.getShape
(int aIndex) Returns theILcdShape
at the given index.int
Returns the number ofILcdShape
objects in the list.getValue
(TLcdDataProperty aProperty) Returns the value of the given property.Convenience method that returns the value of the property with the given name.int
hashCode()
boolean
hasValue
(TLcdDataProperty aProperty) Indicates whether this data object has a value for the given property.boolean
Indicates whether this data object has a value for the given property.removeShape
(int aIndex) Removes the shape at the specified position in thisILcdShapeList
.boolean
removeShape
(ILcdShape aShape) Removes the first occurrence of the specified shape in thisILcdShapeList
.void
removeShapes
(ILcdShape[] aShape) Removes all shapes from thisILcdShapeList
that are contained in the specified array of shapes.Replaces the shape at the specified position in thisILcdShapeList
with the specified shape.void
Replace the list of shapes contained in thisILcdShapeList
with the specified array of shapes.void
setValue
(TLcdDataProperty aProperty, Object aValue) Sets the value of the given property for this data object.void
Convenience method that sets the value of the property with the given name.void
shapeChanged
(int aIndex) Notifies thisILcdShapeList
that the shape at the specified position has changed.void
shapeChanged
(ILcdShape aShape) Notifies thisILcdShapeList
that the specified shape has changed.void
Notifies thisILcdShapeList
that some (possibly all) of its shapes have changed.Methods inherited from class com.luciad.util.TLcdFeatureArray
canSetFeature, getFeature, getFeatureCount, setFeature, setFeatures
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.luciad.util.ILcdFeatured
canSetFeature, getFeature, getFeatureCount, setFeature
-
Constructor Details
-
TLcdFeaturedSingleShapeList
Deprecated.Constructs aTLcdFeaturedSingleShapeList
, without a primary feature. -
TLcdFeaturedSingleShapeList
@Deprecated public TLcdFeaturedSingleShapeList(ILcdShape aShape, Object[] aFeatures, int aPrimaryFeatureIndex) Deprecated.Constructs aTLcdFeaturedSingleShapeList
, with the specified primary feature. -
TLcdFeaturedSingleShapeList
Constructs aTLcdFeaturedSingleShapeList
. The primary feature index of this object is defined by theTLcdPrimaryKeyAnnotation
on the given data type. -
TLcdFeaturedSingleShapeList
Constructs aTLcdSpatialShape
.
-
-
Method Details
-
getPrimaryFeatureIndex
public int getPrimaryFeatureIndex()Returns the index of the primary feature, which identifies the object. A value of -1 indicates that there is no such feature. -
getPrimaryFeature
Returns the primary feature, ornull
if there is no such feature. -
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:
-
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.
-
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.
-
getFocusPoint
Description copied from interface:ILcdShape
Returns the focus point of thisILcdShape
.- Specified by:
getFocusPoint
in interfaceILcdShape
- Returns:
- the focus point of this
ILcdShape
.
-
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.
-
equals
-
hashCode
public int hashCode() -
clone
Description copied from interface:ILcdCloneable
Makes
When for example extending fromObject.clone()
public.java.lang.Object
, it can be implemented like this:public Object clone() { try { return super.clone(); } catch ( CloneNotSupportedException e ) { // Cannot happen: extends from Object and implements Cloneable (see also Object.clone) throw new RuntimeException( e ); } }
- Specified by:
clone
in interfaceILcdCloneable
- Overrides:
clone
in classObject
- See Also:
-
getDataType
Description copied from interface:ILcdDataObject
Returns the type of this data object. This can never benull
.- Specified by:
getDataType
in interfaceILcdDataObject
- Returns:
- the type of this data object
-
getValue
Description copied from interface:ILcdDataObject
Returns the value of the given property.
If the property is a collection, the returned value will never be null. If the property has not been set, an empty collection of the appropriate type will be returned (Set, List or Map).
The property must not be null, and must be declared in the
data object's type
or in one of its super types. Otherwise anIllegalArgumentException
is thrown.- Specified by:
getValue
in interfaceILcdDataObject
- Parameters:
aProperty
- the property for which the value is to be returned- Returns:
- the value of the given property for this data object
-
getValue
Description copied from interface:ILcdDataObject
Convenience method that returns the value of the property with the given name.
If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy). SeeILcdDataObject.getValue(TLcdDataProperty)
for more information.- Specified by:
getValue
in interfaceILcdDataObject
- Parameters:
aPropertyName
- the name of the property of which the value is to be returned- Returns:
- the value of the property with the given name
- See Also:
-
setValue
Description copied from interface:ILcdDataObject
Sets the value of the given property for this data object. The implementation is allowed to throw an exception if the given value can't be set.
The given property must be declared in thedata object's type
or in one of its super types. In other words, getDataType().getProperties().contains( aProperty ) should always be true. Otherwise, the implementation should throw anIllegalArgumentException
.- Specified by:
setValue
in interfaceILcdDataObject
- Parameters:
aProperty
- the property for which the value is to be setaValue
- the value to set- See Also:
-
setValue
Description copied from interface:ILcdDataObject
Convenience method that sets the value of the property with the given name.
If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy). SeeILcdDataObject.setValue(TLcdDataProperty, Object)
for more information.- Specified by:
setValue
in interfaceILcdDataObject
- Parameters:
aPropertyName
- the name of the property of which the value is to be setaValue
- the value to set
-
hasValue
Description copied from interface:ILcdDataObject
Indicates whether this data object has a value for the given property.aProperty
is from theright data type
, and this instance has a value for it: returnstrue
aProperty
is from theright data type
, and this instance has no value for it: returnsfalse
aProperty
is not from theright data type
: not allowed, you will get IllegalArgumentExceptionaProperty
isnull
: not allowed, you will get NullPointerException
- Specified by:
hasValue
in interfaceILcdDataObject
- Parameters:
aProperty
- the property for which to return whether a value is present or not.- Returns:
true
if this data object has a value for the given property,false
otherwise.
-
hasValue
Description copied from interface:ILcdDataObject
Indicates whether this data object has a value for the given property.
SeeILcdDataObject.hasValue(TLcdDataProperty)
for more information.- Specified by:
hasValue
in interfaceILcdDataObject
- Parameters:
aPropertyName
- the name of the property for which to return whether a value is present or not.- Returns:
true
if this data object has a value for the property with the given name,false
otherwise.
-
addShape
Description copied from interface:ILcdEditableShapeList
Inserts the specified shape at the specified position in thisILcdShapeList
.- Specified by:
addShape
in interfaceILcdEditableShapeList
- Parameters:
aIndex
- the index at which the shape is to be inserted.aShape
- the shape to be inserted.
-
addShape
Description copied from interface:ILcdEditableShapeList
Appends the specified shape to the end of thisILcdShapeList
.- Specified by:
addShape
in interfaceILcdEditableShapeList
- Parameters:
aShape
- the shape to be appended to thisILcdShapeList
.
-
addShapes
Description copied from interface:ILcdEditableShapeList
Appends the specified array of shapes to the end of thisILcdShapeList
.- Specified by:
addShapes
in interfaceILcdEditableShapeList
- Parameters:
aShape
- the array of shapes to be appended to thisILcdShapeList
.
-
clearShapes
public void clearShapes()Description copied from interface:ILcdEditableShapeList
Removes all of the shapes from thisILcdShapeList
.- Specified by:
clearShapes
in interfaceILcdEditableShapeList
-
removeShape
Description copied from interface:ILcdEditableShapeList
Removes the shape at the specified position in thisILcdShapeList
. Shifts any subsequent shapes to the left. Returns the shape that was removed from thisILcdShapeList
.- Specified by:
removeShape
in interfaceILcdEditableShapeList
- Parameters:
aIndex
- the index of the shape to removed.- Returns:
- the shape previously at the specified position.
-
removeShape
Description copied from interface:ILcdEditableShapeList
Removes the first occurrence of the specified shape in thisILcdShapeList
. If thisILcdShapeList
does not contain the shape, it is unchanged.- Specified by:
removeShape
in interfaceILcdEditableShapeList
- Parameters:
aShape
- the shape to be removed, if present.- Returns:
true
if thisILcdShapeList
contained the specified element.
-
removeShapes
Description copied from interface:ILcdEditableShapeList
Removes all shapes from thisILcdShapeList
that are contained in the specified array of shapes.- Specified by:
removeShapes
in interfaceILcdEditableShapeList
- Parameters:
aShape
- the array of shapes to be removed from thisILcdShapeList
.
-
setShape
Description copied from interface:ILcdEditableShapeList
Replaces the shape at the specified position in thisILcdShapeList
with the specified shape.- Specified by:
setShape
in interfaceILcdEditableShapeList
- Parameters:
aIndex
- index of shape to replace.aShape
- the shape to be stored at the specified position.- Returns:
- the shape previously at the specified position.
-
setShapes
Description copied from interface:ILcdEditableShapeList
Replace the list of shapes contained in thisILcdShapeList
with the specified array of shapes.- Specified by:
setShapes
in interfaceILcdEditableShapeList
- Parameters:
aShapes
- the array of shapes to be stored in thisILcdShapeList
.
-
shapeChanged
public void shapeChanged(int aIndex) Description copied from interface:ILcdEditableShapeList
Notifies thisILcdShapeList
that the shape at the specified position has changed.- Specified by:
shapeChanged
in interfaceILcdEditableShapeList
- Parameters:
aIndex
- the index of the shape that has changed.
-
shapeChanged
Description copied from interface:ILcdEditableShapeList
Notifies thisILcdShapeList
that the specified shape has changed.- Specified by:
shapeChanged
in interfaceILcdEditableShapeList
- Parameters:
aShape
- the shape that has changed.
-
shapesChanged
public void shapesChanged()Description copied from interface:ILcdEditableShapeList
Notifies thisILcdShapeList
that some (possibly all) of its shapes have changed.- Specified by:
shapesChanged
in interfaceILcdEditableShapeList
-
TLcdFeaturedSingleShapeList(ILcdShape, Object[], TLcdDataType)