001    /*
002     * Copyright 2007, 2012 Stephen Fisher and Junhyong Kim, University of
003     * Pennsylvania.
004     *
005     * This file is part of Glo-DB.
006     * 
007     * Glo-DB is free software: you can redistribute it and/or modify it
008     * under the terms of the GNU General Public License as published by
009     * the Free Software Foundation, either version 3 of the License, or
010     * (at your option) any later version.
011     * 
012     * Glo-DB is distributed in the hope that it will be useful, but
013     * WITHOUT ANY WARRANTY; without even the implied warranty of
014     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015     * General Public License for more details.
016     * 
017     * You should have received a copy of the GNU General Public License
018     * along with Glo-DB. If not, see <http://www.gnu.org/licenses/>.
019     *
020     * @(#)TrackFile.java
021     */
022    
023    package edu.upenn.gloDB.io;
024    
025    import edu.upenn.gloDB.Track;
026    
027    /**
028     * Interface for files that contain Features or Sequences (ie. GloDB,
029     * FASTA, GFF, and GenBank).
030     *
031     * @author  Stephen Fisher
032     * @version $Id: TrackFile.java,v 1.1.2.5 2007/03/01 21:17:33 fisher Exp $
033     */
034    
035    public interface TrackFile extends DataFile {
036    
037        //--------------------------------------------------------------------------
038        // Setters and Getters
039    
040        //--------------------------------------------------------------------------
041        // Miscellaneous Methods
042    
043             /**
044              * Load all Features in the data file into a single Track and
045              * return the resulting Track object. 
046              */
047             public Track load(String filename);
048    
049             /**
050              * Load all Features in the data file into a single Track and
051              * return the resulting Track object. 
052              */
053             public Track load(String filename, String sourceID);
054    
055             /** 
056              * Save the Track to a file based on it's ID. This should use the
057              * ID as the filename and set the overwrite flag to 'true'.
058              */
059             public void save(String id);
060    
061             /** Save the object data. */
062             public void save(String id, String filename, boolean overwrite);
063    
064    } // TrackFile.java
065    
066