All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gov.nist.javax.sdp.fields.TimeField Maven / Gradle / Ivy

There is a newer version: 1.3.0-91
Show newest version
/*
* 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.sdp.fields;
import gov.nist.core.*;
import javax.sdp.*;
import java.util.*;
/**
* Time Field.
*@version  JSR141-PUBLIC-REVIEW (subject to change).
*
*@author Olivier Deruelle 
*@author M. Ranganathan
*
*Bug Report contributed by Brian J. Collins.
*
*/
public class TimeField extends SDPField implements Time {
    protected long startTime;
    protected long stopTime;
    public TimeField() {
        super(TIME_FIELD);
    }
    public long getStartTime() {
        return startTime;
    }
    public long getStopTime() {
        return stopTime;
    }
    /**
    * Set the startTime member
    */
    public void setStartTime(long startTime) {
        this.startTime = startTime;
    }
    /**
    * Set the stopTime member
    */
    public void setStopTime(long stopTime) {
        this.stopTime = stopTime;
    }

    /** Returns the start time of the conference/session.
    * @throws SdpParseException
    * @return the date
    */
    public Date getStart() throws SdpParseException {
        return SdpFactory.getDateFromNtp(startTime);
    }

    /** Returns the stop time of the session
     * @throws SdpParseException
     * @return the stop time of the session.
     */
    public Date getStop() throws SdpParseException {
        return SdpFactory.getDateFromNtp(stopTime);
    }

    /** Sets the stop time of the session.
     * @param stop start - the start time
     * @throws SdpException if the date is null
     */
    public void setStop(Date stop) throws SdpException {
        if (stop == null)
            throw new SdpException("The date is null");
        else {
            this.stopTime = SdpFactory.getNtpTime(stop);
        }
    }

    /** Sets the start time of the conference/session.
     * @param start start - the start time for the session.
     * @throws SdpException if the date is null
     */
    public void setStart(Date start) throws SdpException {
        if (start == null)
            throw new SdpException("The date is null");
        else {
            this.startTime = SdpFactory.getNtpTime(start);
        }
    }

    /** Returns whether the field will be output as a typed time
     * or a integer value.
     *
     *     Typed time is formatted as an integer followed by a unit character.
     * The unit indicates an appropriate multiplier for
     *     the integer.
     *
     *     The following unit types are allowed.
     *          d - days (86400 seconds)
     *          h - hours (3600 seconds)
     *          m - minutes (60 seconds)
     *          s - seconds ( 1 seconds)
     * @return true, if the field will be output as a
     * typed time; false, if as an integer value.
     */
    public boolean getTypedTime() {
        return false;
    }

    /** Sets whether the field will be output as a typed time or a integer value.
     *
     *     Typed time is formatted as an integer followed by a unit character.
     * The unit indicates an appropriate multiplier for
     *     the integer.
     *
     *     The following unit types are allowed.
     *          d - days (86400 seconds)
     *          h - hours (3600 seconds)
     *          m - minutes (60 seconds)
     *          s - seconds ( 1 seconds)
     * @param typedTime typedTime - if set true, the start and stop times will
     * be output in an optimal typed time format; if false, the
     *          times will be output as integers.
     */
    public void setTypedTime(boolean typedTime) {

    }

    /** Returns whether the start and stop times were set to zero (in NTP).
     * @return boolean
     */
    public boolean isZero() {
        return getStartTime()==0 && getStopTime()==0;
    }

    /** Sets the start and stop times to zero (in NTP).
     */
    public void setZero() {
        setStopTime(0);
        setStartTime(0);
    }

    /**
     *  Get the string encoded version of this object
     * @since v1.0
     */
    public String encode() {
        return new StringBuilder()
            .append(TIME_FIELD)
            .append(startTime)
            .append(Separators.SP)
            .append(stopTime)
            .append(Separators.NEWLINE)
            .toString();
    }

}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy