001    /*
002     * Zmanim Java API
003     * Copyright (C) 2007 Eliyahu Hershfeld
004     * 
005     * This program is free software; you can redistribute it and/or modify it under the terms of the
006     * GNU General Public License as published by the Free Software Foundation; either version 2 of the
007     * License, or (at your option) any later version.
008     * 
009     * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
010     * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
011     * General Public License for more details.
012     * 
013     * You should have received a copy of the GNU General Public License along with this program; if
014     * not, write to the Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA
015     * 02111-1307, USA or connect to: http://www.fsf.org/copyleft/gpl.html
016     */
017    package net.sourceforge.zmanim.util;
018    
019    import java.util.Comparator;
020    import java.util.Date;
021    
022    /**
023     * Wrapper class for an astronomical time, mostly used to sort astronomical times.
024     * 
025     * @author © Eliyahu Hershfeld 2007
026     * @version 0.1
027     */
028    public class Zman {
029            private String zmanLabel;
030            private Date zman;
031            private long duration;
032            private Date zmanDescription;
033    
034            public Zman(Date date, String label) {
035                    zmanLabel = label;
036                    zman = date;
037            }
038            
039            public Zman(long duration, String label) {
040                    zmanLabel = label;
041                    this.duration = duration;
042            }
043    
044            public Date getZman() {
045                    return zman;
046            }
047    
048            public void setZman(Date date) {
049                    zman = date;
050            }
051            
052            public long getDuration() {
053                    return duration;
054            }
055    
056            public void setDuration(long duration) {
057                    this.duration = duration;
058            }
059    
060            public String getZmanLabel() {
061                    return zmanLabel;
062            }
063    
064            public void setZmanLabel(String label) {
065                    zmanLabel = label;
066            }
067    
068            /**
069             * TODO implement duration support for solar hours
070             */
071            public static final Comparator DATE_ORDER = new Comparator() {
072                    public int compare(Object o1, Object o2) {
073                            Zman z1 = (Zman) o1;
074                            Zman z2 = (Zman) o2;
075                            return z1.getZman().compareTo(z2.getZman());
076                    }
077            };
078    
079            public static final Comparator NAME_ORDER = new Comparator() {
080                    public int compare(Object o1, Object o2) {
081                            Zman z1 = (Zman) o1;
082                            Zman z2 = (Zman) o2;
083                            return z1.getZmanLabel().compareTo(z2.getZmanLabel());
084                    }
085            };
086    
087            /**
088             * @return the zmanDescription
089             */
090            public Date getZmanDescription() {
091                    return zmanDescription;
092            }
093    
094            /**
095             * @param zmanDescription the zmanDescription to set
096             */
097            public void setZmanDescription(Date zmanDescription) {
098                    this.zmanDescription = zmanDescription;
099            }
100    }