View Javadoc

1   /*
2    * Created on Dec 19, 2003
3    * 
4    * Copyright (c) 2003, 2004 Delft University of Technology Jaffalaan 5, 2628 BX
5    * Delft, the Netherlands All rights reserved.
6    * 
7    * This software is proprietary information of Delft University of Technology
8    * The code is published under the General Public License
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              //new Exception("track "+track+" already in track list").printStackTrace();
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 }