001: /*
002: * Time.java
003: *
004: * Created on January 9, 2002, 10:53 AM
005: */
006:
007: package javax.sdp;
008:
009: import java.util.*;
010:
011: /** A RepeatTime represents a t= field contained within a TimeDescription.
012: *
013: * A RepeatTime specifies the start and stop times for a SessionDescription.
014: *
015: * Note: this class uses java.util.Date objects. SDP messages encode time in NTP
016: * format.
017: *
018: * To convert between them use SdpFactory.getDateFromNtp(long) and
019: * SdpFactory.getNtpTime(Date).
020: *
021: * Quoting from RFC 2327:
022: *
023: * Multiple "t=" fields may be used if a session is active at multiple
024: * irregularly spaced times; each additional
025: * "t=" field specifies an additional period of time for which the session
026: * will be active. If the session is active at
027: * regular times, an "r=" field (see below) should be used in addition to and
028: * following a "t=" field - in which
029: * case the "t=" field specifies the start and stop times of the repeat sequence.
030: *
031: * Please refer to IETF RFC 2327 for a description of SDP.
032: *
033: * @author deruelle
034: * @version 1.0
035: */
036: public interface Time extends Field {
037:
038: /** Returns the start time of the conference/session.
039: * @throws SdpParseException
040: * @return the date
041: */
042: public Date getStart() throws SdpParseException;
043:
044: /** Sets the start time of the conference/session.
045: * @param start start - the start time for the session.
046: * @throws SdpException if the date is null
047: */
048: public void setStart(Date start) throws SdpException;
049:
050: /** Returns the stop time of the session
051: * @throws SdpParseException
052: * @return the stop time of the session.
053: */
054: public Date getStop() throws SdpParseException;
055:
056: /** Sets the stop time of the session.
057: * @param stop start - the start time
058: * @throws SdpException if the date is null
059: */
060: public void setStop(Date stop) throws SdpException;
061:
062: /** Returns whether the start and stop times were set to zero (in NTP).
063: * @return boolean
064: */
065: public boolean isZero();
066:
067: /** Sets the start and stop times to zero (in NTP).
068: */
069: public void setZero();
070:
071: /** Returns whether the field will be output as a typed time or a integer value.
072: *
073: * Typed time is formatted as an integer followed by a unit character.
074: * The unit indicates an appropriate multiplier for
075: * the integer.
076: *
077: * The following unit types are allowed.
078: * d - days (86400 seconds)
079: * h - hours (3600 seconds)
080: * m - minutes (60 seconds)
081: * s - seconds ( 1 seconds)
082: * @return true, if the field will be output as a typed time; false, if as an
083: * integer value.
084: */
085: public boolean getTypedTime();
086:
087: /** Sets whether the field will be output as a typed time or a integer value.
088: *
089: * Typed time is formatted as an integer followed by a unit character.
090: * The unit indicates an appropriate multiplier for
091: * the integer.
092: *
093: * The following unit types are allowed.
094: * d - days (86400 seconds)
095: * h - hours (3600 seconds)
096: * m - minutes (60 seconds)
097: * s - seconds ( 1 seconds)
098: * @param typedTime typedTime - if set true, the start and stop times will
099: * be output in an optimal typed time format; if false, the
100: * times will be output as integers.
101: */
102: public void setTypedTime(boolean typedTime);
103:
104: }
|