blob: 8e0b1f0b6606fba2970404ff024dc3a0a0fb5ad2 [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.*;
import javax.sdp.*;
/**
* Connectin Field of the SDP request.
*
*@version JSR141-PUBLIC-REVIEW (subject to change).
*
*@author Olivier Deruelle <deruelle@antd.nist.gov>
*@author M. Ranganathan <br/>
*
*
*
*/
public class ConnectionField extends SDPField implements javax.sdp.Connection {
protected String nettype;
protected String addrtype;
protected ConnectionAddress address;
public ConnectionField() {
super(SDPFieldNames.CONNECTION_FIELD);
}
public String getNettype() {
return nettype;
}
public String getAddrtype() {
return addrtype;
}
public ConnectionAddress getConnectionAddress() {
return address;
}
/**
* 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(ConnectionAddress a) {
address = a;
}
/**
* Get the string encoded version of this object
* @since v1.0
*/
public String encode() {
String encoded_string = CONNECTION_FIELD;
if (nettype != null)
encoded_string += nettype;
if (addrtype != null)
encoded_string += Separators.SP + addrtype;
if (address != null)
encoded_string += Separators.SP + address.encode();
return encoded_string += Separators.NEWLINE;
}
public String toString() {
return this.encode();
}
/** Returns the type of the network for this Connection.
* @throws SdpParseException
* @return the type of the network
*/
public String getAddress() throws SdpParseException {
ConnectionAddress connectionAddress = getConnectionAddress();
if (connectionAddress == null)
return null;
else {
Host host = connectionAddress.getAddress();
if (host == null)
return null;
else
return host.getAddress();
}
}
/** Returns the type of the address for this Connection.
* @throws SdpParseException
* @return the type of the address
*/
public String getAddressType() throws SdpParseException {
return getAddrtype();
}
/** Returns the type of the network for this Connection.
* @throws SdpParseException
* @return the type of the network
*/
public String getNetworkType() throws SdpParseException {
return getNettype();
}
/** Sets the type of the address for this Connection.
* @param addr to set
* @throws SdpException if the type is null
*/
public void setAddress(String addr) throws SdpException {
if (addr == null)
throw new SdpException("the addr is null");
else {
if (address == null) {
address = new ConnectionAddress();
Host host = new Host(addr);
address.setAddress(host);
} else {
Host host = address.getAddress();
if (host == null) {
host = new Host(addr);
address.setAddress(host);
} else
host.setAddress(addr);
}
setAddress(address);
}
}
/** Returns the type of the network for this Connection.
* @param type to set
* @throws SdpException if the type is null
*/
public void setAddressType(String type) throws SdpException {
if (type == null)
throw new SdpException("the type is null");
this.addrtype = type;
}
/** Sets the type of the network for this Connection.
* @param type to set
* @throws SdpException if the type is null
*/
public void setNetworkType(String type) throws SdpException {
if (type == null)
throw new SdpException("the type is null");
else
setNettype(type);
}
public Object clone() {
ConnectionField retval = (ConnectionField) super.clone();
if (this.address != null)
retval.address = (ConnectionAddress) this.address.clone();
return retval;
}
}