1package gov.nist.javax.sip.message;
2
3import java.text.ParseException;
4
5import javax.sip.header.ContentDispositionHeader;
6import javax.sip.header.ContentTypeHeader;
7
8public class ContentImpl implements Content {
9
10
11    /*
12     * The content type header for this chunk of content.
13     */
14
15    private Object content;
16
17    private String boundary;
18
19    private ContentTypeHeader contentTypeHeader;
20
21    private ContentDispositionHeader contentDispositionHeader;
22
23
24
25    public ContentImpl( String content, String boundary ) {
26        this.content = content;
27
28        this.boundary = boundary;
29    }
30
31
32
33    /* (non-Javadoc)
34     * @see gov.nist.javax.sip.message.ContentExt#setContent(java.lang.String)
35     */
36    public void setContent(Object content) {
37        this.content = content;
38    }
39
40    /* (non-Javadoc)
41     * @see gov.nist.javax.sip.message.ContentExt#getContentTypeHeader()
42     */
43    public ContentTypeHeader getContentTypeHeader() {
44        return contentTypeHeader;
45    }
46
47    /*
48     * (non-Javadoc)
49     * @see gov.nist.javax.sip.message.Content#getContent()
50     */
51    public Object getContent() {
52        return this.content;
53    }
54
55
56    /* (non-Javadoc)
57     * @see gov.nist.javax.sip.message.ContentExt#toString()
58     */
59    public String toString() {
60        // This is not part of a multipart message.
61        if (boundary == null) {
62            return content.toString();
63        } else {
64           if ( this.contentDispositionHeader != null ) {
65            return "--" + boundary + "\r\n" + getContentTypeHeader() +
66                    this.getContentDispositionHeader().toString() + "\r\n"
67                    + content.toString();
68           } else {
69               return "--" + boundary + "\r\n" + getContentTypeHeader() + "\r\n" +  content.toString();
70           }
71        }
72    }
73
74
75
76    /**
77     * @param contentDispositionHeader the contentDispositionHeader to set
78     */
79    public void setContentDispositionHeader(ContentDispositionHeader contentDispositionHeader) {
80        this.contentDispositionHeader = contentDispositionHeader;
81    }
82
83
84
85    /**
86     * @return the contentDispositionHeader
87     */
88    public ContentDispositionHeader getContentDispositionHeader() {
89        return contentDispositionHeader;
90    }
91
92
93
94    /**
95     * @param contentTypeHeader the contentTypeHeader to set
96     */
97    public void setContentTypeHeader(ContentTypeHeader contentTypeHeader) {
98        this.contentTypeHeader = contentTypeHeader;
99    }
100
101
102}
103