Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
  * Conditions Of Use
  *
  * This software was developed by employees of the National Institute of
  * Standards and Technology (NIST), an agency of the Federal Government.
  * Pursuant to title 15 Untied States Code Section 105, works of NIST
  * employees are not subject to copyright protection in the United States
  * and are considered to be in the public domain.  As a result, a formal
  * license is not needed to use the software.
 *
 * This software is provided by NIST as a service and is expressly
 * provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
 * AND DATA ACCURACY.  NIST does not warrant or make any representations
 * regarding the use of the software or the results thereof, including but
 * not limited to the correctness, accuracy, reliability or usefulness of
 * the software.
 *
 * Permission to use this software is contingent upon your acceptance
 * of the terms of this agreement
 *
 * .
 *
 */
Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * /
 
 package gov.nist.javax.sip.header;
Implements a parser class for tracking expiration time when specified as a Date value.
 From the HTTP 1.1 spec
14.18 Date

   The Date general-header field represents the date and time at which
   the message was originated, having the same semantics as orig-date in
   RFC 822. The field value is an HTTP-date, as described in section
   3.3.1; it MUST be sent in RFC 1123 [8]-date format.

       Date  = "Date" ":" HTTP-date

   An example is

       Date: Tue, 15 Nov 1994 08:12:31 GMT

Author(s):
M. Ranganathan
Version:
1.2 $Revision: 1.9 $ $Date: 2009/10/18 13:46:33 $
 
 
 public class SIPDate implements Cloneable,Serializable {
    
Comment for serialVersionUID
 
     private static final long serialVersionUID = 8544101899928346909L;
     public static final String GMT = "GMT";
     public static final String MON = "Mon";
     public static final String TUE = "Tue";
     public static final String WED = "Wed";
     public static final String THU = "Thu";
     public static final String FRI = "Fri";
     public static final String SAT = "Sat";
     public static final String SUN = "Sun";
     public static final String JAN = "Jan";
     public static final String FEB = "Feb";
     public static final String MAR = "Mar";
     public static final String APR = "Apr";
     public static final String MAY = "May";
     public static final String JUN = "Jun";
     public static final String JUL = "Jul";
     public static final String AUG = "Aug";
     public static final String SEP = "Sep";
     public static final String OCT = "Oct";
     public static final String NOV = "Nov";
     public static final String DEC = "Dec";

    
sipWkDay member
 
     protected String sipWkDay;

    
sipMonth member
 
     protected String sipMonth;

    
wkday member
    protected int wkday;

    
day member
    protected int day;

    
month member
    protected int month;

    
year member
    protected int year;

    
hour member
    protected int hour;

    
minute member
    protected int minute;

    
second member
    protected int second;

    
javaCal member
    private java.util.Calendar javaCal;

    
equality check.

Returns:
true if the two date fields are equals
    public boolean equals(Object that){
        if (that.getClass() != this.getClass())return false;
        SIPDate other = (SIPDate)that;
        return this. == other.wkday &&
        this. == other.day &&
        this. == other.month &&
        this. == other.year &&
        this. == other.hour &&
        this. == other.minute &&
        this. == other.second;
    }

    
Initializer, sets all the fields to invalid values.
    public SIPDate() {
         = -1;
         = -1;
         = -1;
         = -1;
         = -1;
         = -1;
         = -1;
         = null;
    }

    
Construct a SIP date from the time offset given in miliseconds

Parameters:
timeMillis long to set
    public SIPDate(long timeMillis) {
         =
            new GregorianCalendar(
                TimeZone.getTimeZone("GMT:0"),
                Locale.getDefault());
        java.util.Date date = new java.util.Date(timeMillis);
        .setTime(date);
         = .get(.);
        switch () {
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            default :
                InternalErrorHandler.handleException(
                    "No date map for wkday " + );
        }
         = .get(.);
         = .get(.);
        switch () {
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            case . :
                 = ;
                break;
            default :
                InternalErrorHandler.handleException(
                    "No date map for month " + );
        }
         = .get(.);
        // Bug report by Bruno Konik
         = .get(.);
         = .get(.);
         = .get(.);
    }

    
Get canonical string representation.

Returns:
String
    public String encode() {
        String dayString;
        if ( < 10) {
            dayString = "0" + ;
        } else
            dayString = "" + ;
        String hourString;
        if ( < 10) {
            hourString = "0" + ;
        } else
            hourString = "" + ;
        String minuteString;
        if ( < 10) {
            minuteString = "0" + ;
        } else
            minuteString = "" + ;
        String secondString;
        if ( < 10) {
            secondString = "0" + ;
        } else
            secondString = "" + ;
        String encoding = "";
        if ( != null)
            encoding +=  + . + .;
        encoding += dayString + .;
        if ( != null)
            encoding +=  + .;
        encoding += 
            + .
            + hourString
            + .
            + minuteString
            + .
            + secondString
            + .
            + ;
        return encoding;
    }

    
The only accessor we allow is to the java calendar record. All other fields are for this package only.

Returns:
Calendar
    public java.util.Calendar getJavaCal() {
        if ( == null)
            setJavaCal();
        return ;
    }

    
get the WkDay field

Returns:
String
    public String getWkday() {
        return ;
    }

    
get the month

Returns:
String
    public String getMonth() {
        return ;
    }

    
get the hour

Returns:
int
    public int getHour() {
        return ;
    }

    
get the minute

Returns:
int
    public int getMinute() {
        return ;
    }

    
get the second

Returns:
int
    public int getSecond() {
        return ;
    }

    
convert the SIP Date of this structure to a Java Date. SIP Dates are forced to be GMT. Stores the converted time as a java Calendar class.
    private void setJavaCal() {
         =
            new GregorianCalendar(
                TimeZone.getTimeZone("GMT:0"),
                Locale.getDefault());
        if ( != -1)
            .set(.);
        if ( != -1)
            .set(.);
        if ( != -1)
            .set(.);
        if ( != -1)
            .set(.);
        if ( != -1)
            .set(.);
        if ( != -1)
            .set(.);
        if ( != -1)
            .set(.);
    }

    
Set the wkday member

Parameters:
w String to set
Throws:
java.lang.IllegalArgumentException if w is not a valid day.
    public void setWkday(String wthrows IllegalArgumentException {
         = w;
        if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else {
            throw new IllegalArgumentException("Illegal Week day :" + w);
        }
    }

    
Set the day member

Parameters:
d int to set
Throws:
java.lang.IllegalArgumentException if d is not a valid day
    public void setDay(int dthrows IllegalArgumentException {
        if (d < 1 || d > 31)
            throw new IllegalArgumentException(
                "Illegal Day of the month " + Integer.toString(d));
         = d;
    }

    
Set the month member

Parameters:
m String to set.
Throws:
java.lang.IllegalArgumentException if m is not a valid month
    public void setMonth(String mthrows IllegalArgumentException {
         = m;
        if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else if (.compareToIgnoreCase() == 0) {
             = .;
        } else {
            throw new IllegalArgumentException("Illegal Month :" + m);
        }
    }

    
Set the year member

Parameters:
y int to set
Throws:
java.lang.IllegalArgumentException if y is not a valid year.
    public void setYear(int ythrows IllegalArgumentException {
        if (y < 0)
            throw new IllegalArgumentException("Illegal year : " + y);
         = null;
         = y;
    }

    
Get the year member.
    public int getYear() {
        return ;
    }

    
Set the hour member

Parameters:
h int to set
Throws:
java.lang.IllegalArgumentException if h is not a valid hour.
    public void setHour(int hthrows IllegalArgumentException {
        if (h < 0 || h > 24)
            throw new IllegalArgumentException("Illegal hour : " + h);
         = null;
         = h;
    }

    
Set the minute member

Parameters:
m int to set
Throws:
java.lang.IllegalArgumentException if m is not a valid minute
    public void setMinute(int mthrows IllegalArgumentException {
        if (m < 0 || m >= 60)
            throw new IllegalArgumentException(
                "Illegal minute : " + (Integer.toString(m)));
         = null;
         = m;
    }

    
Set the second member

Parameters:
s int to set
Throws:
java.lang.IllegalArgumentException if s is not a valid second
    public void setSecond(int sthrows IllegalArgumentException {
        if (s < 0 || s >= 60)
            throw new IllegalArgumentException(
                "Illegal second : " + Integer.toString(s));
         = null;
         = s;
    }

    
Get the time offset from the current time.

Returns:
offset from the current time.
    public int getDeltaSeconds() {
        // long ctime = this.getJavaCal().getTimeInMillis();
        long ctime = this.getJavaCal().getTime().getTime();
        return (int) (ctime - System.currentTimeMillis()) / 1000;
    }
    public Object clone() {
        SIPDate retval;
        try {
            retval = (SIPDatesuper.clone();
        } catch (CloneNotSupportedException e) {
            throw new RuntimeException("Internal error");
        }
        if ( != null)
            retval.javaCal = (java.util.Calendar.clone();
        return retval;
    }
/*
 * $Log: SIPDate.java,v $
 * Revision 1.9  2009/10/18 13:46:33  deruelle_jean
 * FindBugs Fixes (Category Performance Warnings)
 *
 * Issue number:
 * Obtained from:
 * Submitted by: Jean Deruelle
 * Reviewed by:
 *
 * Revision 1.8  2009/07/17 18:57:37  emcho
 * Converts indentation tabs to spaces so that we have a uniform indentation policy in the whole project.
 *
 * Revision 1.7  2006/07/13 09:01:16  mranga
 * Issue number:
 * Obtained from:
 * Submitted by:  jeroen van bemmel
 * Reviewed by:   mranga
 * Moved some changes from jain-sip-1.2 to java.net
 *
 * CVS: ----------------------------------------------------------------------
 * CVS: Issue number:
 * CVS:   If this change addresses one or more issues,
 * CVS:   then enter the issue number(s) here.
 * CVS: Obtained from:
 * CVS:   If this change has been taken from another system,
 * CVS:   then name the system in this line, otherwise delete it.
 * CVS: Submitted by:
 * CVS:   If this code has been contributed to the project by someone else; i.e.,
 * CVS:   they sent us a patch or a set of diffs, then include their name/email
 * CVS:   address here. If this is your work then delete this line.
 * CVS: Reviewed by:
 * CVS:   If we are doing pre-commit code reviews and someone else has
 * CVS:   reviewed your changes, include their name(s) here.
 * CVS:   If you have not had it reviewed then delete this line.
 *
 * Revision 1.3  2006/06/19 06:47:26  mranga
 * javadoc fixups
 *
 * Revision 1.2  2006/06/16 15:26:28  mranga
 * Added NIST disclaimer to all public domain files. Clean up some javadoc. Fixed a leak
 *
 * Revision 1.1.1.1  2005/10/04 17:12:35  mranga
 *
 * Import
 *
 *
 * Revision 1.5  2005/04/16 20:35:10  dmuresan
 * SIPDate made cloneable.
 *
 * Revision 1.4  2004/07/28 14:41:53  mranga
 * Submitted by:  mranga
 *
 * fixed equality check for SIPDate.
 *
 * Revision 1.3  2004/04/05 21:46:08  mranga
 * Submitted by:  Bruno Konik
 * Reviewed by:   mranga
 *
 * Revision 1.2  2004/01/22 13:26:29  sverker
 * Issue number:
 * Obtained from:
 * Submitted by:  sverker
 * Reviewed by:   mranga
 *
 * Major reformat of code to conform with style guide. Resolved compiler and javadoc warnings. Added CVS tags.
 *
 * CVS: ----------------------------------------------------------------------
 * CVS: Issue number:
 * CVS:   If this change addresses one or more issues,
 * CVS:   then enter the issue number(s) here.
 * CVS: Obtained from:
 * CVS:   If this change has been taken from another system,
 * CVS:   then name the system in this line, otherwise delete it.
 * CVS: Submitted by:
 * CVS:   If this code has been contributed to the project by someone else; i.e.,
 * CVS:   they sent us a patch or a set of diffs, then include their name/email
 * CVS:   address here. If this is your work then delete this line.
 * CVS: Reviewed by:
 * CVS:   If we are doing pre-commit code reviews and someone else has
 * CVS:   reviewed your changes, include their name(s) here.
 * CVS:   If you have not had it reviewed then delete this line.
 *
 */
New to GrepCode? Check out our FAQ X