Package gov.nist.javax.sdp.fields

Source Code of gov.nist.javax.sdp.fields.OriginField

/*
* 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.Host;
import gov.nist.core.Separators;

import javax.sdp.SdpException;
import javax.sdp.SdpParseException;
/**
*   Origin Field SDP header
*
*@version  JSR141-PUBLIC-REVIEW (subject to change).
*
*@author Olivier Deruelle <deruelle@antd.nist.gov>
*@author M. Ranganathan   <br/>
*
*
*
*/
public class OriginField extends SDPField implements javax.sdp.Origin {
    protected String username;
    //protected long sessId;
    //protected long sessVersion;
    protected String nettype; // IN
    protected String addrtype; // IPV4/6
    protected Host address;
    private String sessIdString;
    private String sessVersionString;

    public OriginField() {
        super(ORIGIN_FIELD);
    }

    /** Returns the name of the session originator.
    * @throws SdpParseException
    * @return the string username.
    */
    public String getUsername() throws SdpParseException {
        return username;
    }
    /**
    * Get the sessionID member.
    */
    public long getSessId() {

        return Long.valueOf(this.sessIdString).longValue();
    }

    public String getSessIdAsString() {
        return this.sessIdString;
    }
    /**
    * Get the sessionVersion member.
    */
    public long getSessVersion() {

        return Long.valueOf(sessVersionString).longValue();
    }

    public String getSessVersionAsString() {
        return this.sessVersionString;
    }
    /**
    * Get the netType member.
    */
    public String getNettype() {
        return nettype;
    }
    /**
    * Get the address type member.
    */
    public String getAddrtype() {
        return addrtype;
    }
    /**
    * Get the host member.
    */
    public Host getHost() {
        return address;
    }
    /**
    * Set the sessId member
    */
    public void setSessId(long s) {
        this.sessIdString =  Long.toString(s);
    }

    /**
     * This is a work around for some implementations that do not set a long
     * session id.
     */
    public void setSessionId(String sessId) {
        this.sessIdString = sessId;
    }
    /**
    * Set the sessVersion member
    */
    public void setSessVersion(long s) {
        sessVersionString =  Long.toString(s);
    }

    /**
     * Set the session version as a string.
     */
    public void setSessVersion(String s) {
        this.sessVersionString = s;
    }
    /**
    * Set the nettype member
    */
    public void setNettype(String n) {
        nettype = n;
    }
    /**
    * Set the addrtype member
    */
    public void setAddrtype(String a) {
        addrtype = a;
    }
    /**
    * Set the address member
    */
    public void setAddress(Host a) {
        address = a;
    }

    /** Sets the name of the session originator.
     * @param user the string username.
     * @throws SdpException if the parameter is null
     */
    public void setUsername(String user) throws SdpException {
        if (user == null)
            throw new SdpException("The user parameter is null");
        else {
            this.username = user;
        }
    }

    /** Returns the unique identity of the session.
     * @throws SdpParseException
     * @return the session id.
     */
    public long getSessionId() throws SdpParseException {
        return getSessId();
    }

    /** Sets the unique identity of the session.
     * @param id  the session id.
     * @throws SdpException if the id is <0
     */
    public void setSessionId(long id) throws SdpException {
        if (id < 0)
            throw new SdpException("The is parameter is <0");
        else
            setSessId(id);
    }

    /** Returns the unique version of the session.
     * @throws SdpException
     * @return the session version.
     */
    public long getSessionVersion() throws SdpParseException {
        return getSessVersion();
    }

    /** Sets the unique version of the session.
     * @param version  the session version.
     * @throws SdpException if the version is <0
     */
    public void setSessionVersion(long version) throws SdpException {
        if (version < 0)
            throw new SdpException("The version parameter is <0");
        else
            setSessVersion(version);
    }

    /** Returns the type of the network for this Connection.
     * @throws SdpParseException
     * @return the string network type.
     */
    public String getAddress() throws SdpParseException {
        Host addr = getHost();
        if (addr == null)
            return null;
        else
            return addr.getAddress();
    }

    /** Returns the type of the address for this Connection.
     * @throws SdpParseException
     * @return the string address type.
     */
    public String getAddressType() throws SdpParseException {
        return getAddrtype();
    }

    /** Returns the type of the network for this Connection
    * @throws SdpParseException
    * @return the string network type.
    */
    public String getNetworkType() throws SdpParseException {
        return getNettype();
    }

    /** Sets the type of the address for this Connection.
     * @param addr  string address type.
     * @throws SdpException if the addr is null
     */
    public void setAddress(String addr) throws SdpException {
        if (addr == null)
            throw new SdpException("The addr parameter is null");
        else {
            Host host = getHost();
            if (host == null)
                host = new Host();
            host.setAddress(addr);
            setAddress(host);
        }
    }

    /** Returns the type of the network for this Connection.
     * @param type the string network type.
     * @throws SdpException if the type is null
     */
    public void setAddressType(String type) throws SdpException {
        if (type == null)
            throw new SdpException("The type parameter is <0");
        else
            setAddrtype(type);
    }

    /** Sets the type of the network for this Connection.
     * @param type  the string network type.
     * @throws SdpException if the type is null
     */
    public void setNetworkType(String type) throws SdpException {
        if (type == null)
            throw new SdpException("The type parameter is <0");
        else
            setNettype(type);
    }

    /**
     *  Get the string encoded version of this object
     * @since v1.0
     */
    public String encode() {
        String addressStr = null;

        if (address != null){
            addressStr = address.encode();

            //it appears that SDP does not allow square brackets
            //in the connection address (see RFC4566) so make sure
            //we lose them
            if(Host.isIPv6Reference(addressStr))
            {
                //the isIPv6Reference == true means we have a minimum
                //of 2 symbols, so substring bravely
                addressStr = addressStr
                    .substring(1, addressStr.length()-1);
            }
        }

        return ORIGIN_FIELD
            + username
            + Separators.SP
            + sessIdString
            + Separators.SP
            + sessVersionString
            + Separators.SP
            + nettype
            + Separators.SP
            + addrtype
            + Separators.SP
            + addressStr
            + Separators.NEWLINE;
    }

    public Object clone() {
        OriginField retval = (OriginField) super.clone();
        if (this.address != null)
            retval.address = (Host) this.address.clone();
        return retval;
    }

}
TOP

Related Classes of gov.nist.javax.sdp.fields.OriginField

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.