Adds parsing of ChannelBundle elements.

fix-message-formatting 5290
paweldomas 11 years ago
parent 8bcded16a6
commit fdad0fd2c9

@ -157,6 +157,28 @@ public List<ChannelBundle> getChannelBundles()
return Collections.unmodifiableList(channelBundles);
}
/**
* Finds {@link ChannelBundle} identified by given <tt>bundleId</tt>.
* @param bundleId <tt>ChannelBundle</tt> identifier.
* @return {@link ChannelBundle} identified by given <tt>bundleId</tt> or
* <tt>null</tt> if not found.
*/
public ChannelBundle getChannelBundle(String bundleId)
{
if (bundleId == null)
{
return null;
}
for (ChannelBundle bundle : channelBundles)
{
if (bundleId.equals(bundle.getId()))
{
return bundle;
}
}
return null;
}
/**
* Returns an XML <tt>String</tt> representation of this <tt>IQ</tt>.
*

@ -99,8 +99,21 @@ else if (childExtension instanceof SourceGroupPacketExtension)
}
private void addChildExtension(
ColibriConferenceIQ.SctpConnection sctpConnection,
PacketExtension childExtension)
ColibriConferenceIQ.ChannelBundle bundle,
PacketExtension childExtension)
{
if (childExtension instanceof IceUdpTransportPacketExtension)
{
IceUdpTransportPacketExtension transport
= (IceUdpTransportPacketExtension) childExtension;
bundle.setTransport(transport);
}
}
private void addChildExtension(
ColibriConferenceIQ.SctpConnection sctpConnection,
PacketExtension childExtension)
{
if (childExtension instanceof IceUdpTransportPacketExtension)
{
@ -173,6 +186,7 @@ public IQ parseIQ(XmlPullParser parser)
ColibriConferenceIQ.RTCPTerminationStrategy rtcpTerminationStrategy
= null;
ColibriConferenceIQ.SctpConnection sctpConnection = null;
ColibriConferenceIQ.ChannelBundle bundle = null;
ColibriConferenceIQ.Content content = null;
ColibriConferenceIQ.Recording recording = null;
ColibriConferenceIQ.Endpoint conferenceEndpoint = null;
@ -204,6 +218,16 @@ else if (ColibriConferenceIQ.SctpConnection.ELEMENT_NAME
sctpConnection = null;
}
else if (ColibriConferenceIQ.ChannelBundle.ELEMENT_NAME
.equals(name))
{
if (bundle != null)
{
conference.addChannelBundle(bundle);
bundle = null;
}
}
else if (ColibriConferenceIQ.Endpoint.ELEMENT_NAME
.equals(name))
{
@ -386,6 +410,21 @@ else if (ColibriConferenceIQ.Recording.ELEMENT_NAME.equals(
if ((rtpPort != null) && (rtpPort.length() != 0))
channel.setRTPPort(Integer.parseInt(rtpPort));
}
else if (ColibriConferenceIQ.ChannelBundle
.ELEMENT_NAME.equals(name))
{
String bundleId
= parser.getAttributeValue(
"",
ColibriConferenceIQ
.ChannelBundle.ID_ATTR_NAME);
if(!StringUtils.isNullOrEmpty(bundleId))
{
bundle = new ColibriConferenceIQ
.ChannelBundle(bundleId);
}
}
else if (ColibriConferenceIQ.RTCPTerminationStrategy
.ELEMENT_NAME.equals(name))
{
@ -531,7 +570,9 @@ else if (ColibriConferenceIQ.Endpoint.ELEMENT_NAME
endpointName);
}
else if (channel != null || sctpConnection != null)
else if ( channel != null
|| sctpConnection != null
|| bundle != null )
{
String peName = null;
String peNamespace = null;
@ -593,9 +634,11 @@ else if (SourceGroupPacketExtension.ELEMENT_NAME
{
if(channel != null)
addChildExtension(channel, extension);
else
else if (sctpConnection != null)
addChildExtension(sctpConnection,
extension);
else
addChildExtension(bundle, extension);
}
}
}

Loading…
Cancel
Save