1 package tim.prune.data;
3 import java.util.ArrayList;
6 * Class to hold the information about the file(s)
7 * from which the data was loaded from / saved to
11 /** List of sources */
12 private ArrayList<SourceInfo> _sources = new ArrayList<SourceInfo>();
22 * Private constructor for creating clone
23 * @param inList list of sources
25 private FileInfo(ArrayList<SourceInfo> inList)
31 * Add a data source to the list
32 * @param inInfo info object to add
34 public void addSource(SourceInfo inInfo)
40 * Replace the list of data sources with the given source
41 * @param inInfo new source
43 public void replaceSource(SourceInfo inInfo)
50 * remove the last source added
52 public void removeSource()
54 if (!_sources.isEmpty()) {
55 _sources.remove(_sources.size()-1);
60 * @return the number of files loaded
62 public int getNumFiles()
64 return _sources.size();
69 * @return The source name, if a single file
71 public String getFilename()
73 if (getNumFiles() == 1) {
74 return _sources.get(0).getName();
80 * @param inIndex index number, starting from zero
81 * @return source info object
83 public SourceInfo getSource(int inIndex)
85 return _sources.get(inIndex);
89 * Get the SourceInfo object (if any) for the given point
90 * @param inPoint point object
91 * @return SourceInfo object if there is one, otherwise null
93 public SourceInfo getSourceForPoint(DataPoint inPoint)
95 for (SourceInfo source : _sources)
97 if (source.getIndex(inPoint) >= 0) {
105 * @return the info about the last file loaded, if any
107 public SourceInfo getLastFileInfo()
109 if (getNumFiles() == 0)
113 return getSource(getNumFiles()-1);
117 * @return the most recent file title loaded, if any
119 public String getLastFileTitle()
121 final int numFiles = getNumFiles();
126 for (int i=(numFiles-1); i>=0; i--)
128 SourceInfo info = getSource(i);
131 String title = info.getFileTitle();
132 if (title != null && !title.equals(""))
142 * Clone contents of file info
144 @SuppressWarnings("unchecked")
145 public FileInfo clone()
148 ArrayList<SourceInfo> copy = (ArrayList<SourceInfo>) _sources.clone();
149 return new FileInfo(copy);