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

gov.nist.javax.sdp.fields.OriginField 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 android.gov.nist.javax.sdp.fields;
import android.gov.nist.core.Host;
import android.gov.nist.core.Separators;

import android.javax.sdp.SdpException;
import android.javax.sdp.SdpParseException;
/**
*   Origin Field SDP header
*
*@version  JSR141-PUBLIC-REVIEW (subject to change).
*
*@author Olivier Deruelle 
*@author M. Ranganathan   
* * * */ public class OriginField extends SDPField implements android.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; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy