1
2
3
4
5
6
7
8
9
10
11 package nl.tudelft.simulation.traffic.track.util;
12
13 import java.util.ArrayList;
14 import java.util.Iterator;
15
16 import nl.tudelft.simulation.logger.Logger;
17 import nl.tudelft.simulation.traffic.track.TrackInterface;
18
19 /***
20 * This class functions as an ArrayList holding only tracks.
21 *
22 * @author <a
23 * href="http://www.tbm.tudelft.nl/webstaf/alexandv/index.htm">Alexander
24 * Verbraeck </a> <br>
25 */
26 public class TrackList
27 {
28 /*** list of tracks */
29 private ArrayList list;
30
31 /***
32 * Constructor of the list
33 */
34 public TrackList()
35 {
36 this.list = new ArrayList();
37 }
38
39 /***
40 * @param track
41 */
42 public void add(final TrackInterface track)
43 {
44 if (this.list.contains(track))
45 {
46 Logger.warning(this, "add", "track "+track+" already in track list");
47
48 }
49 else
50 this.list.add(track);
51 }
52
53 /***
54 * @param track
55 * @return boolean
56 */
57 public boolean contains(final TrackInterface track)
58 {
59 return this.list.contains(track);
60 }
61
62 /***
63 * @param i
64 * @return track
65 */
66 public TrackInterface get(final int i)
67 {
68 return (TrackInterface) this.list.get(i);
69 }
70
71 /***
72 * @param track
73 * @return boolean
74 */
75 public boolean equals(final TrackInterface track)
76 {
77 return this.list.equals(track);
78 }
79
80 /***
81 * @param track
82 * @return index
83 */
84 public int indexOf(final TrackInterface track)
85 {
86 return this.list.indexOf(track);
87 }
88
89 /***
90 * @param track
91 */
92 public void remove(final TrackInterface track)
93 {
94 this.list.remove(track);
95 }
96
97 /***
98 * @param i
99 */
100 public void remove(final int i)
101 {
102 this.list.remove(i);
103 }
104
105 /***
106 * @return size
107 */
108 public int size()
109 {
110 return this.list.size();
111 }
112
113 /***
114 * @return
115 */
116 public Iterator iterator()
117 {
118 return this.list.iterator();
119 }
120
121 /***
122 * @return
123 */
124 public TrackList cloneList()
125 {
126 TrackList slist = new TrackList();
127 slist.list = (ArrayList) this.list.clone();
128 return slist;
129 }
130
131 /***
132 * @return
133 */
134 public TrackInterface[] toArray()
135 {
136 Object[] objs = this.list.toArray();
137 TrackInterface[] tracks = new TrackInterface[objs.length];
138 for (int i = 0; i < tracks.length; i++)
139 {
140 tracks[i] = (TrackInterface) objs[i];
141 }
142 return tracks;
143 }
144 }