1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.header.extensions;
2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ParametersHeader;
4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException;
6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.util.Iterator;
7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ExtensionHeader;
9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic class References extends ParametersHeader  implements ReferencesHeader,ExtensionHeader  {
11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private static final long serialVersionUID = 8536961681006637622L;
13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private String callId;
16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public References() {
18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        super(ReferencesHeader.NAME);
19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public String getCallId() {
25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang       return callId;
26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public String getRel() {
31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return this.getParameter(REL);
32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setCallId(String callId) {
38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        this.callId = callId;
39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setRel(String rel) throws ParseException{
43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang      if ( rel != null ) {
44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang          this.setParameter(REL,rel);
45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang      }
46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public String getParameter(String name) {
50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return super.getParameter(name);
51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public Iterator getParameterNames() {
55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return super.getParameterNames();
56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void removeParameter(String name) {
60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang       super.removeParameter(name);
61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setParameter(String name, String value) throws ParseException {
65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang       super.setParameter(name,value);
66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public String getName() {
70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return ReferencesHeader.NAME;
71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    protected String encodeBody() {
75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        if ( super.parameters.isEmpty()) {
76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            return callId ;
77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        } else {
78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            return callId + ";" + super.parameters.encode();
79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        }
80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setValue(String value) throws ParseException {
84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        throw new UnsupportedOperationException("operation not supported");
85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang}
88