package osm.jp.gpx;

import java.util.Date;
import java.util.TreeMap;

/**
 * GPXファイルをパースする
 * @param gpxFile
 * @code{
 * <gpx>
 *   <trk>
 *     <trkseg>
 *       <trkpt lat="35.32123832" lon="139.56965631">
 *         <ele>47.20000076293945</ele>
 *         <time>2012-06-15T03:00:29Z</time>
 *         <hdop>0.5</hdop>
 *       </trkpt>
 *     </trkseg>
 *   </trk>
 * </gpx>
 * }
 */
@SuppressWarnings("serial")
public class ElementMapTRKSEG extends TreeMap<Date, ElementMapTRKPT> {
    public ElementMapTRKSEG() {
        super(new TimeComparator());
    }

    /**
     * 拡張put value:ElementMapTRKPTをputするとElementMapTRKPT内の最初のエントリのtimeを読み取ってkeyとしてthis.put(key,value)する。
     * @param value 
     * @throws DOMException 
     */
    public void put(ElementMapTRKPT value) {
        for (Date key : value.keySet()) {
            this.put(key, value);
            return;
        }
    }
	
    public void printheader() {
        System.out.println("|--------------------------------+--------------------+--------------------|");
        System.out.println("| GPS logging time               | First Time         | Last Time          |");
        System.out.println("|--------------------------------+--------------------+--------------------|");
    }

    public void printfooter() {
        System.out.println("|--------------------------------+--------------------+--------------------|");
        System.out.println();
    }

    public void printinfo() {
    	printheader();
        for (java.util.Map.Entry<Date, ElementMapTRKPT> map : this.entrySet()) {
            ElementMapTRKPT mapTRKPT = map.getValue();
            mapTRKPT.printinfo();
        }
        printfooter();
    }
}
