/** * Adds the element contained in the PacketExtension to the child element of the IQ * packet. IQ packets, unlike the other packet types, have a unique child element that * holds the packet extensions. If an extension is added to an IQ packet that does * not have a child element then an IllegalStateException will be thrown.<p> * * It is important that this is the first and last time the element contained in * PacketExtension is added to another Packet. Otherwise, a runtime error will be * thrown when trying to add the PacketExtension's element to the Packet's element. * Future modifications to the PacketExtension will be reflected in this Packet.<p> * * Note: packet extensions on IQ packets are only for use in specialized situations. * In most cases, you should only need to set the child element of the IQ. * * @param extension the PacketExtension whose element will be added to this Packet's element. */ public void addExtension(PacketExtension extension) { XElement childElement = getChildElement(); if (childElement == null) { throw new IllegalStateException("Cannot add packet extension when child element is null"); } // Add the extension to the child element childElement.Add(extension.getElement()); }
/** * Adds the element contained in the PacketExtension to the element of this packet. * It is important that this is the first and last time the element contained in * PacketExtension is added to another Packet. Otherwise, a runtime error will be * thrown when trying to add the PacketExtension's element to the Packet's element. * Future modifications to the PacketExtension will be reflected in this Packet. * * @param extension the PacketExtension whose element will be added to this Packet's element. */ public void addExtension(PacketExtension extension) { element.Add(extension.getElement()); }