aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/xmpp/stanzas/jingle/JinglePacket.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/eu/siacs/conversations/xmpp/stanzas/jingle/JinglePacket.java')
-rw-r--r--src/eu/siacs/conversations/xmpp/stanzas/jingle/JinglePacket.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/eu/siacs/conversations/xmpp/stanzas/jingle/JinglePacket.java b/src/eu/siacs/conversations/xmpp/stanzas/jingle/JinglePacket.java
new file mode 100644
index 00000000..51c60d1f
--- /dev/null
+++ b/src/eu/siacs/conversations/xmpp/stanzas/jingle/JinglePacket.java
@@ -0,0 +1,54 @@
+package eu.siacs.conversations.xmpp.stanzas.jingle;
+
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+
+public class JinglePacket extends IqPacket {
+ Content content = null;
+ Reason reason = null;
+
+ @Override
+ public Element addChild(Element child) {
+ if ("jingle".equals(child.getName())) {
+ Element contentElement = child.findChild("content");
+ if (contentElement!=null) {
+ this.content = new Content();
+ this.content.setChildren(contentElement.getChildren());
+ this.content.setAttributes(contentElement.getAttributes());
+ }
+ Element reasonElement = child.findChild("reason");
+ if (reasonElement!=null) {
+ this.reason = new Reason();
+ this.reason.setChildren(reasonElement.getChildren());
+ this.reason.setAttributes(reasonElement.getAttributes());
+ }
+ this.build();
+ this.findChild("jingle").setAttributes(child.getAttributes());
+ }
+ return child;
+ }
+
+ public JinglePacket setContent(Content content) {
+ this.content = content;
+ this.build();
+ return this;
+ }
+
+ public JinglePacket setReason(Reason reason) {
+ this.reason = reason;
+ this.build();
+ return this;
+ }
+
+ private void build() {
+ this.children.clear();
+ Element jingle = addChild("jingle", "urn:xmpp:jingle:1");
+ if (this.content!=null) {
+ jingle.addChild(this.content);
+ }
+ if (this.reason != null) {
+ jingle.addChild(this.reason);
+ }
+ this.children.add(jingle);
+ }
+}