Package org.opentrafficsim.kpi.sampling
Class Query<G extends GtuDataInterface>
java.lang.Object
org.opentrafficsim.kpi.sampling.Query<G>
- Type Parameters:
G
- gtu data type
- All Implemented Interfaces:
Identifiable
public final class Query<G extends GtuDataInterface> extends java.lang.Object implements Identifiable
A query defines which subset of trajectory information should be included. This is in terms of space-time regions, and in
terms of meta data of trajectories, e.g. only include trajectories of trucks.
Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
Constructor Summary
Constructors Constructor Description Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet)
Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet, Duration interval)
Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency)
Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency, Duration interval)
Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet)
Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet, Duration interval)
Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency)
Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency, Duration interval)
-
Method Summary
Modifier and Type Method Description void
addSpaceTimeRegion(KpiLaneDirection laneDirection, Length startPosition, Length endPosition, Time startTime, Time endTime)
Defines a region in space and time for which this query is valid.void
addSpaceTimeRegionLink(LinkDataInterface link, KpiGtuDirectionality direction, Length startPosition, Length endPosition, Time startTime, Time endTime)
Defines a region in space and time for which this query is valid.boolean
equals(java.lang.Object obj)
java.lang.String
getDescription()
java.lang.String
getId()
return the unique id for the query.Duration
getInterval()
java.util.Iterator<java.util.Map.Entry<MetaDataType<?>,java.util.Set<?>>>
getMetaDataSetIterator()
Sampler<?>
getSampler()
java.util.Iterator<SpaceTimeRegion>
getSpaceTimeIterator()
<T> java.util.List<TrajectoryGroup<G>>
getTrajectoryGroups(Time endTime)
Returns a list of TrajectoryGroups in accordance with the query.<T> java.util.List<TrajectoryGroup<G>>
getTrajectoryGroups(Time startTime, Time endTime)
Returns a list of TrajectoryGroups in accordance with the query.Frequency
getUpdateFrequency()
int
hashCode()
int
metaDataSize()
int
spaceTimeRegionSize()
java.lang.String
toString()
-
Constructor Details
-
Query
public Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet)- Parameters:
sampler
- Sampler<G>; samplerid
- String; iddescription
- String; descriptionmetaDataSet
- MetaDataSet; meta data- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
public Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet, Duration interval)- Parameters:
sampler
- Sampler<G>; samplerid
- String; iddescription
- String; descriptionmetaDataSet
- MetaDataSet; meta datainterval
- Duration; interval to gather statistics over- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
public Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency)- Parameters:
sampler
- Sampler<G>; samplerid
- String; iddescription
- String; descriptionmetaDataSet
- MetaDataSet; meta dataupdateFrequency
- Frequency; update frequency- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
public Query(Sampler<G> sampler, java.lang.String id, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency, Duration interval)- Parameters:
sampler
- Sampler<G>; samplerid
- String; iddescription
- String; descriptionmetaDataSet
- MetaDataSet; meta dataupdateFrequency
- Frequency; update frequencyinterval
- Duration; interval to gather statistics over- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
- Parameters:
sampler
- Sampler<G>; samplerdescription
- String; descriptionmetaDataSet
- MetaDataSet; meta data- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
public Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet, Duration interval)- Parameters:
sampler
- Sampler<G>; samplerdescription
- String; descriptionmetaDataSet
- MetaDataSet; meta datainterval
- Duration; interval to gather statistics over- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
public Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency)- Parameters:
sampler
- Sampler<G>; samplerdescription
- String; descriptionmetaDataSet
- MetaDataSet; meta dataupdateFrequency
- Frequency; update frequency- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
Query
public Query(Sampler<G> sampler, java.lang.String description, MetaDataSet metaDataSet, Frequency updateFrequency, Duration interval)- Parameters:
sampler
- Sampler<G>; samplerdescription
- String; descriptionmetaDataSet
- MetaDataSet; meta dataupdateFrequency
- Frequency; update frequencyinterval
- Duration; interval to gather statistics over- Throws:
java.lang.NullPointerException
- if sampling, description or metaDataSet is null
-
-
Method Details
-
getId
public java.lang.String getId()return the unique id for the query.- Specified by:
getId
in interfaceIdentifiable
- Returns:
- String; the unique id for the query
-
getDescription
public java.lang.String getDescription()- Returns:
- description
-
getUpdateFrequency
- Returns:
- updateFrequency.
-
getInterval
- Returns:
- interval.
-
metaDataSize
public int metaDataSize()- Returns:
- number of meta data entries
-
getMetaDataSetIterator
public java.util.Iterator<java.util.Map.Entry<MetaDataType<?>,java.util.Set<?>>> getMetaDataSetIterator()- Returns:
- iterator over meta data entries, removal is not allowed
-
addSpaceTimeRegionLink
public void addSpaceTimeRegionLink(LinkDataInterface link, KpiGtuDirectionality direction, Length startPosition, Length endPosition, Time startTime, Time endTime)Defines a region in space and time for which this query is valid. All lanes in the link are included.- Parameters:
link
- LinkDataInterface; linkdirection
- KpiGtuDirectionality; directionstartPosition
- Length; start positionendPosition
- Length; end positionstartTime
- Time; start timeendTime
- Time; end time
-
addSpaceTimeRegion
public void addSpaceTimeRegion(KpiLaneDirection laneDirection, Length startPosition, Length endPosition, Time startTime, Time endTime)Defines a region in space and time for which this query is valid.- Parameters:
laneDirection
- KpiLaneDirection; lane directionstartPosition
- Length; start positionendPosition
- Length; end positionstartTime
- Time; start timeendTime
- Time; end time
-
spaceTimeRegionSize
public int spaceTimeRegionSize()- Returns:
- number of space-time regions
-
getSpaceTimeIterator
- Returns:
- iterator over space-time regions, removal is not allowed
-
getTrajectoryGroups
Returns a list of TrajectoryGroups in accordance with the query. EachTrajectoryGroup
containsTrajectory
objects pertaining to aSpaceTimeRegion
from the query. ATrajectory
is only included if all the meta data of this query accepts the trajectory. This method usesTime.ZERO
as start.- Type Parameters:
T
- underlying class of meta data type and its value- Parameters:
endTime
- Time; end time of interval to get trajectory groups for- Returns:
- list of trajectory groups in accordance with the query
-
getTrajectoryGroups
Returns a list of TrajectoryGroups in accordance with the query. EachTrajectoryGroup
containsTrajectory
objects pertaining to aSpaceTimeRegion
from the query. ATrajectory
is only included if all the meta data of this query accepts the trajectory.- Type Parameters:
T
- underlying class of meta data type and its value- Parameters:
startTime
- Time; start time of interval to get trajectory groups forendTime
- Time; start time of interval to get trajectory groups for- Returns:
- list of trajectory groups in accordance with the query
-
getSampler
- Returns:
- sampling.
-
hashCode
public int hashCode()- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-