blob: e8e3a2626c32517986917c258adb58d2d6500f81 [file] [log] [blame]
/*
* 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.*;
/**
* Connection Address of the SDP header (appears as part of the Connection field)
*
*@version JSR141-PUBLIC-REVIEW (subject to change)
*
*@author Olivier Deruelle <deruelle@antd.nist.gov>
*@author M. Ranganathan <br/>
*
*
*
*/
public class ConnectionAddress extends SDPObject {
protected Host address;
protected int ttl;
protected int port;
public Host getAddress() {
return address;
}
public int getTtl() {
return ttl;
}
public int getPort() {
return port;
}
/**
* Set the address member
*/
public void setAddress(Host a) {
address = a;
}
/**
* Set the ttl member
*/
public void setTtl(int ttl) {
this.ttl = ttl;
}
/**
* Set the port member
*/
public void setPort(int p) {
port = p;
}
/**
* Get the string encoded version of this object
* @since v1.0
*/
public String encode() {
String encoded_string = "";
if (address != null){
encoded_string = 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(encoded_string))
{
//the isIPv6Reference == true means we have a minimum
//of 2 symbols, so substring bravely
encoded_string = encoded_string
.substring(1, encoded_string.length()-1);
}
}
if (ttl != 0 && port != 0) {
encoded_string += Separators.SLASH + ttl + Separators.SLASH + port;
} else if (ttl != 0) {
encoded_string += Separators.SLASH + ttl;
}
return encoded_string;
}
public Object clone() {
ConnectionAddress retval = (ConnectionAddress) super.clone();
if (this.address != null)
retval.address = (Host) this.address.clone();
return retval;
}
}