1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.message;
2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException;
4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ContentDispositionHeader;
6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport javax.sip.header.ContentTypeHeader;
7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic class ContentImpl implements Content {
9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /*
12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * The content type header for this chunk of content.
13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private Object content;
16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private String boundary;
18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private ContentTypeHeader contentTypeHeader;
20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    private ContentDispositionHeader contentDispositionHeader;
22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ContentImpl( String content, String boundary ) {
26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        this.content = content;
27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        this.boundary = boundary;
29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /* (non-Javadoc)
34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @see gov.nist.javax.sip.message.ContentExt#setContent(java.lang.String)
35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setContent(Object content) {
37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        this.content = content;
38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /* (non-Javadoc)
41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @see gov.nist.javax.sip.message.ContentExt#getContentTypeHeader()
42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ContentTypeHeader getContentTypeHeader() {
44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return contentTypeHeader;
45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /*
48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * (non-Javadoc)
49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @see gov.nist.javax.sip.message.Content#getContent()
50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public Object getContent() {
52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return this.content;
53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /* (non-Javadoc)
57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @see gov.nist.javax.sip.message.ContentExt#toString()
58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public String toString() {
60600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        // This is not part of a multipart message.
61600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        if (boundary == null) {
62600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            return content.toString();
63600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        } else {
64600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang           if ( this.contentDispositionHeader != null ) {
65600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang            return "--" + boundary + "\r\n" + getContentTypeHeader() +
66600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang                    this.getContentDispositionHeader().toString() + "\r\n"
67600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang                    + content.toString();
68600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang           } else {
69600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang               return "--" + boundary + "\r\n" + getContentTypeHeader() + "\r\n" +  content.toString();
70600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang           }
71600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        }
72600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
73600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
74600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
75600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
76600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
77600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param contentDispositionHeader the contentDispositionHeader to set
78600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
79600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setContentDispositionHeader(ContentDispositionHeader contentDispositionHeader) {
80600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        this.contentDispositionHeader = contentDispositionHeader;
81600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
82600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
83600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
84600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
85600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
86600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @return the contentDispositionHeader
87600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
88600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public ContentDispositionHeader getContentDispositionHeader() {
89600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        return contentDispositionHeader;
90600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
91600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
92600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
93600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
94600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    /**
95600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     * @param contentTypeHeader the contentTypeHeader to set
96600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang     */
97600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    public void setContentTypeHeader(ContentTypeHeader contentTypeHeader) {
98600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang        this.contentTypeHeader = contentTypeHeader;
99600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang    }
100600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
101600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang
102600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang}
103