Content.java

 1package eu.siacs.conversations.xmpp.jingle.stanzas;
 2
 3import java.util.ArrayList;
 4import java.util.List;
 5
 6import eu.siacs.conversations.xml.Element;
 7import eu.siacs.conversations.xmpp.jingle.JingleFile;
 8
 9public class Content extends Element {
10	private Content(String name) {
11		super(name);
12	}
13	
14	public Content() {
15		super("content");
16	}
17
18	public void setFileOffer(JingleFile actualFile) {
19		Element description = this.addChild("description", "urn:xmpp:jingle:apps:file-transfer:3");
20		Element offer = description.addChild("offer");
21		Element file = offer.addChild("file");
22		file.addChild("size").setContent(""+actualFile.getSize());
23		file.addChild("name").setContent(actualFile.getName());
24	}
25	
26	public Element getFileOffer() {
27		Element description = this.findChild("description", "urn:xmpp:jingle:apps:file-transfer:3");
28		if (description==null) {
29			return null;
30		}
31		Element offer = description.findChild("offer");
32		if (offer==null) {
33			return null;
34		}
35		return offer.findChild("file");
36	}
37
38	public void setCandidates(String transportId, List<Element> canditates) {
39		Element transport = this.findChild("transport", "urn:xmpp:jingle:transports:s5b:1");
40		if (transport==null) {
41			transport = this.addChild("transport", "urn:xmpp:jingle:transports:s5b:1");
42		}
43		transport.setAttribute("sid", transportId);
44		transport.clearChildren();
45		for(Element canditate : canditates) {
46			transport.addChild(canditate);
47		}
48	}
49	
50	public List<Element> getCanditates() {
51		Element transport = this.findChild("transport", "urn:xmpp:jingle:transports:s5b:1");
52		if (transport==null) {
53			return new ArrayList<Element>();
54		} else {
55			return transport.getChildren();
56		}
57	}
58	
59	public String getTransportId() {
60		Element transport = this.findChild("transport", "urn:xmpp:jingle:transports:s5b:1");
61		if (transport==null) {
62			return null;
63		}
64		return transport.getAttribute("sid");
65	}
66	
67	public String getUsedCandidate() {
68		Element transport = this.findChild("transport", "urn:xmpp:jingle:transports:s5b:1");
69		if (transport==null) {
70			return null;
71		}
72		Element usedCandidate = transport.findChild("candidate-used");
73		if (usedCandidate==null) {
74			return null;
75		} else {
76			return usedCandidate.getAttribute("cid");
77		}
78	}
79	
80	public void setUsedCandidate(String transportId, String cid) {
81		Element transport = this.findChild("transport", "urn:xmpp:jingle:transports:s5b:1");
82		if (transport==null) {
83			transport = this.addChild("transport", "urn:xmpp:jingle:transports:s5b:1");
84		}
85		transport.setAttribute("sid", transportId);
86		transport.clearChildren();
87		Element usedCandidate = transport.addChild("candidate-used");
88		usedCandidate.setAttribute("cid",cid);
89	}
90
91	public void addCandidate(Element candidate) {
92		Element transport = this.findChild("transport", "urn:xmpp:jingle:transports:s5b:1");
93		if (transport==null) {
94			transport = this.addChild("transport", "urn:xmpp:jingle:transports:s5b:1");
95		}
96		transport.addChild(candidate);
97	}
98}