X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fdata%2FFileInfo.java;h=1fd56b94b76aca28739c809bb11f3f78d48ce77f;hp=41fd10c8f893c0fa109b5afea12ffc9a20318e89;hb=1ee49ae3c8ef3aa2e63eadd458531e5f8bd4f92c;hpb=112bb0c9b46894adca9a33ed8c99ea712b253185 diff --git a/tim/prune/data/FileInfo.java b/tim/prune/data/FileInfo.java index 41fd10c..1fd56b9 100644 --- a/tim/prune/data/FileInfo.java +++ b/tim/prune/data/FileInfo.java @@ -1,60 +1,94 @@ package tim.prune.data; +import java.util.ArrayList; + /** * Class to hold the information about the file(s) * from which the data was loaded from / saved to */ public class FileInfo { - private String _filename = null; - private int _numFiles = 0; + /** List of sources */ + private ArrayList _sources = new ArrayList(); /** - * Set the file information to the specified file - * @param inFilename filename of file + * Empty constructor */ - public void setFile(String inFilename) + public FileInfo() + {} + + /** + * Private constructor for creating clone + * @param inList list of sources + */ + private FileInfo(ArrayList inList) { - _filename = inFilename; - _numFiles = 1; + _sources = inList; } - /** - * Add a file to the data + * Add a data source to the list + * @param inInfo info object to add */ - public void addFile() + public void addSource(SourceInfo inInfo) { - _numFiles++; + _sources.add(inInfo); } - /** - * Undo a load file + * Replace the list of data sources with the given source + * @param inInfo new source */ - public void removeFile() + public void replaceSource(SourceInfo inInfo) { - _numFiles--; + _sources.clear(); + addSource(inInfo); } + /** + * remove the last source added + */ + public void removeSource() + { + _sources.remove(_sources.size()-1); + } /** * @return the number of files loaded */ public int getNumFiles() { - return _numFiles; + return _sources.size(); } /** - * @return The filename, if a single file + * @return The source name, if a single file */ public String getFilename() { - if (_numFiles == 1 && _filename != null) - return _filename; + if (getNumFiles() == 1) + return _sources.get(0).getName(); return ""; } + + /** + * @param inIndex index number + * @return source info object + */ + public SourceInfo getSource(int inIndex) { + return _sources.get(inIndex); + } + + /** + * Clone contents of file info + */ + @SuppressWarnings("unchecked") + public FileInfo clone() + { + // copy source list + ArrayList copy = (ArrayList) _sources.clone(); + return new FileInfo(copy); + } }