package mil.nga.giat.geowave.format.stanag4676.parser.model; import java.util.List; import java.util.ArrayList; import java.util.UUID; public class Track { private Long id; private String uuid; private String trackNumber; private TrackStatus status; private Security security; private String comment; private List<TrackPoint> points = new ArrayList<TrackPoint>(); private List<TrackIdentity> identities = new ArrayList<TrackIdentity>(); private List<TrackClassification> classifications = new ArrayList<TrackClassification>(); private List<TrackManagement> managements = new ArrayList<TrackManagement>(); private List<MotionImagery> motionImages; private List<LineageRelation> trackRelations = new ArrayList<LineageRelation>(); public Long getId() { return id; } public void setId( Long id ) { this.id = id; } /** * The UUID of a track * * @return UUID */ public String getUuid() { return uuid; } /** * Sets the UUID of the track * * @param uuid */ public void setUuid( String uuid ) { this.uuid = uuid; } public String getTrackNumber() { return trackNumber; } public void setTrackNumber( String trackNumber ) { this.trackNumber = trackNumber; } public TrackStatus getStatus() { return status; } public void setStatus( TrackStatus status ) { this.status = status; } public Security getSecurity() { return security; } public void setSecurity( Security security ) { this.security = security; } public String getComment() { return comment; } public void setComment( String comment ) { this.comment = comment; } /** * A list of the TrackPoints which comprise this track * * @return A list of the TrackPoints which comprise this track */ public List<TrackPoint> getPoints() { return points; } /** * Sets the list of TrackPoints which comprise this track * * @param points * the list of TrackPoints which comprise this track */ public void setPoints( List<TrackPoint> points ) { this.points = points; } /** * Adds a TrackPoint to the list of TrackPoints comprise this track * * @param point * the TrackPoint to add */ public void addPoint( TrackPoint point ) { if (this.points == null) { this.points = new ArrayList<TrackPoint>(); } this.points.add(point); } /** * Provides identity information about a track. * <p> * values are derived from STANAG 1241. * * @return {@link TrackIdentity} */ public List<TrackIdentity> getIdentities() { return identities; } public void setIdentities( List<TrackIdentity> identities ) { this.identities = identities; } /** * sets the identity information about this track * * @param identity * {@link TrackIdentity} */ public void addIdentity( TrackIdentity identity ) { if (this.identities == null) { this.identities = new ArrayList<TrackIdentity>(); } this.identities.add(identity); } /** * Provides classification information about this track * * @return {@link TrackClassification} */ public List<TrackClassification> getClassifications() { return classifications; } public void setClassifications( List<TrackClassification> classifications ) { this.classifications = classifications; } /** * sets the classification information about this track * * @param classification * {@link TrackClassificaion} */ public void addClassification( TrackClassification classification ) { if (this.classifications == null) { this.classifications = new ArrayList<TrackClassification>(); } this.classifications.add(classification); } /** * Provides management information about this track * * @return {@link TrackManagement} */ public List<TrackManagement> getManagements() { return managements; } public void setManagements( List<TrackManagement> managements ) { this.managements = managements; } /** * sets the management information about this track * * @param management * {@link TrackManagement} */ public void addManagement( TrackManagement management ) { if (this.managements == null) { this.managements = new ArrayList<TrackManagement>(); } this.managements.add(management); } /** * Provides a list of related tracks * * @return List<{@link LineageRelation}> */ public List<LineageRelation> getTrackRelations() { return trackRelations; } public void setTrackRelations( List<LineageRelation> trackRelations ) { this.trackRelations = trackRelations; } /** * sets a list of related tracks * * @param trackRelations * List<{@link LineageRelation}> */ public void addTrackRelation( LineageRelation relation ) { if (this.trackRelations == null) { this.trackRelations = new ArrayList<LineageRelation>(); } this.trackRelations.add(relation); } /** * Provides video (motion imagery) information about this track * * @return {@link MotionImagery} */ public List<MotionImagery> getMotionImages() { return motionImages; } public void setMotionImages( List<MotionImagery> motionImages ) { this.motionImages = motionImages; } public void addMotionImagery( MotionImagery image ) { if (this.motionImages == null) { this.motionImages = new ArrayList<MotionImagery>(); } this.motionImages.add(image); } }