public class TLcdSegmentBasedRoute extends ALcdShapeList implements ILcdEditableRoute
ILcdRoute
. This class implements
ILcdShapeList
. The route is separated into shapes by looking for
disjoint segments. The getShape()
method returns an
ILcd3DEditablePolyline
. The method always returns a clone of the
instance that is set by
set3DEditablePolyline(ILcd3DEditablePolyline)
, so this instance must
be set by the user prior to using any other methods!Modifier and Type | Field and Description |
---|---|
static TLcdDataProperty |
SEGMENTS_PROPERTY
The Segments property of the segment based route type.
|
Constructor and Description |
---|
TLcdSegmentBasedRoute()
Deprecated.
|
TLcdSegmentBasedRoute(TLcdDataType aDataType)
Creates a new instance for the given type.
|
TLcdSegmentBasedRoute(TLcdSegmentBasedRoute aSegmentBasedRoute)
Copy constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
addSegmentBySequenceNumber(ILcdRouteSegment aSegment)
Adds a segment to this route.
|
Object |
clone()
Returns a clone of this
TLcdSegmentBasedRoute object. |
boolean |
equals(Object aObject)
Returns true if this object is the same as the specified object.
|
TLcdDataType |
getDataType()
Returns the type of this data object.
|
ILcdRouteSegment |
getSegment(int aIndex)
Returns the segment at the specified index.
|
int |
getSegmentCount()
Returns the number of segments of this route.
|
ILcdShape |
getShape(int aShapeNumber)
Returns the
ILcdShape at the given index. |
int |
getShapeCount()
Returns the number of
ILcdShape objects in the list. |
Object |
getValue(String aPropertyName)
Convenience method that returns the value of the property with the given name.
|
Object |
getValue(TLcdDataProperty aProperty)
Returns the value of the given property.
|
int |
hashCode()
The hash code of this shape is the hash code of its class, in order to
be consistent with the
ALcdShape.equals(Object) method. |
boolean |
hasValue(String aPropertyName)
Indicates whether this data object has a value for the given property.
|
boolean |
hasValue(TLcdDataProperty aProperty)
Indicates whether this data object has a value for the given property.
|
int |
insertSegmentAt(ILcdRouteSegment aSegment,
int aIndex)
Adds a segment to this route at the specified index.
|
void |
removeSegment(ILcdRouteSegment aSegment)
Removes a
ILcdRouteSegment object from this route. |
void |
removeSegmentAt(int aIndex)
Removes the
ILcdRouteSegment object on the specified index from the
ILcdEditableRoute . |
void |
set3DEditablePolyline(ILcd3DEditablePolyline aPolyline)
Sets the polyline that will be cloned to create the lines that are returned
by the
getShape() method. |
void |
setValue(String aPropertyName,
Object aValue)
Convenience method that sets the value of the property with the given name.
|
void |
setValue(TLcdDataProperty aProperty,
Object aValue)
Sets the value of the given property for this data object.
|
calculateFocusPoint, clearCache, contains2D, contains3D, getBounds, getCachedObject, getFocusPoint, insertIntoCache, invalidateBounds, invalidateObject, removeCachedObject, setFocusPoint, toString
contains2D, contains3D, fromDomainObject
finalize, getClass, notify, notifyAll, wait, wait, wait
contains2D, contains2D, contains3D, contains3D, getFocusPoint
getBounds
public static final TLcdDataProperty SEGMENTS_PROPERTY
ILcdRouteSegment
.@Deprecated public TLcdSegmentBasedRoute()
TLcdSegmentBasedRoute(TLcdDataType)
public TLcdSegmentBasedRoute(TLcdDataType aDataType)
aDataType
- the data type of the returned instanceIllegalArgumentException
- if TLcdAISDataTypes.Route
is not assignable from the
given data typepublic TLcdSegmentBasedRoute(TLcdSegmentBasedRoute aSegmentBasedRoute)
aSegmentBasedRoute
- the object to be copiedpublic TLcdDataType getDataType()
ILcdDataObject
null
.getDataType
in interface ILcdDataObject
public Object getValue(TLcdDataProperty aProperty)
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 an IllegalArgumentException
is thrown.
getValue
in interface ILcdDataObject
aProperty
- the property for which the value is to be returnedpublic Object getValue(String aPropertyName)
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.getValue
in interface ILcdDataObject
aPropertyName
- the name of the property of which the value is to be returnedTLcdDataType.getProperty(String)
public void setValue(TLcdDataProperty aProperty, Object aValue)
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 an IllegalArgumentException
.setValue
in interface ILcdDataObject
aProperty
- the property for which the value is to be setaValue
- the value to setTLcdDataType.getProperty(String)
public void setValue(String aPropertyName, Object aValue)
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.setValue
in interface ILcdDataObject
aPropertyName
- the name of the property of which the value is to be setaValue
- the value to setpublic boolean hasValue(TLcdDataProperty aProperty)
ILcdDataObject
aProperty
is from the right data type
, and this instance has a value for it: returns true
aProperty
is from the right data type
, and this instance has no value for it: returns false
aProperty
is not from the right data type
: not allowed, you will get IllegalArgumentExceptionaProperty
is null
: not allowed, you will get NullPointerExceptionhasValue
in interface ILcdDataObject
aProperty
- the property for which to return whether a value is present or not.true
if this data object has a value for the given property, false
otherwise.public boolean hasValue(String aPropertyName)
ILcdDataObject
ILcdDataObject.hasValue(TLcdDataProperty)
for more information.hasValue
in interface ILcdDataObject
aPropertyName
- the name of the property for which to return whether a value is present
or not.true
if this data object has a value for the property with the given name,
false
otherwise.public void set3DEditablePolyline(ILcd3DEditablePolyline aPolyline)
getShape()
method.aPolyline
- the polyline that will be cloned to create the lines that
are returned by the getShape()
method.public ILcdRouteSegment getSegment(int aIndex)
ILcdRoute
getSegment
in interface ILcdRoute
aIndex
- the index of the segment to be retrievedpublic int getSegmentCount()
ILcdRoute
getSegmentCount
in interface ILcdRoute
public int getShapeCount()
ILcdShapeList
ILcdShape
objects in the list.getShapeCount
in interface ILcdShapeList
ILcdShape
objects in the list.public ILcdShape getShape(int aShapeNumber) throws IndexOutOfBoundsException
ILcdShapeList
ILcdShape
at the given index.getShape
in interface ILcdShapeList
aShapeNumber
- a valid index in the list of ILcdShape
objects.ILcdShape
at the given index.IndexOutOfBoundsException
- when the index is not valid.public Object clone()
TLcdSegmentBasedRoute
object.
Note: the internal polyline (see set3DEditablePolyline(ILcd3DEditablePolyline)
)
of the new object is a clone of the polyline of this object.
Other features are a shallow clone.clone
in interface ILcdCloneable
clone
in class ALcdShapeList
TLcdSegmentBasedRoute
object.Object.clone()
public boolean equals(Object aObject)
equals
in class ALcdShapeList
aObject
- the reference object with which to compare.public int hashCode()
ALcdShape
ALcdShape.equals(Object)
method.
Extensions should refine this implementation, based on their properties.hashCode
in class ALcdShapeList
public int addSegmentBySequenceNumber(ILcdRouteSegment aSegment)
ILcdEditableRoute
addSegmentBySequenceNumber
in interface ILcdEditableRoute
aSegment
- the ILcdRouteSegment
to be added.public int insertSegmentAt(ILcdRouteSegment aSegment, int aIndex)
ILcdEditableRoute
insertSegmentAt
in interface ILcdEditableRoute
aSegment
- the ILcdRouteSegment
to be added.aIndex
- the index at which the segment is to be insertedpublic void removeSegment(ILcdRouteSegment aSegment)
ILcdEditableRoute
ILcdRouteSegment
object from this route.removeSegment
in interface ILcdEditableRoute
aSegment
- the <ILcdRouteSegment
object to be removedpublic void removeSegmentAt(int aIndex)
ILcdEditableRoute
ILcdRouteSegment
object on the specified index from the
ILcdEditableRoute
.removeSegmentAt
in interface ILcdEditableRoute
aIndex
- the index in the ILcdEditableRoute
where the
ILcdRouteSegment
object must be removed