182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanpackage javax.sip.header;
282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport java.text.ParseException;
482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport java.util.Calendar;
582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport java.util.List;
682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport java.util.Locale;
782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport javax.sip.InvalidArgumentException;
882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport javax.sip.address.Address;
982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanimport javax.sip.address.URI;
1082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
1182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyanpublic interface HeaderFactory {
1282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    void setPrettyEncoding(boolean flag);
1382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
1482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AcceptEncodingHeader createAcceptEncodingHeader(String encoding)
1582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
1682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
1782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AcceptHeader createAcceptHeader(String contentType, String contentSubType)
1882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
1982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AcceptLanguageHeader createAcceptLanguageHeader(Locale language);
2182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AlertInfoHeader createAlertInfoHeader(URI alertInfo);
2382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AllowEventsHeader createAllowEventsHeader(String eventType)
2582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
2682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AllowHeader createAllowHeader(String method) throws ParseException;
2882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
2982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AuthenticationInfoHeader createAuthenticationInfoHeader(String response)
3082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
3182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
3282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    AuthorizationHeader createAuthorizationHeader(String scheme)
3382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
3482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
3582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    CallIdHeader createCallIdHeader(String callId) throws ParseException;
3682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
3782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    CallInfoHeader createCallInfoHeader(URI callInfo);
3882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
3982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContactHeader createContactHeader();
4082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContactHeader createContactHeader(Address address);
4282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContentDispositionHeader createContentDispositionHeader(
4482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            String contentDispositionType) throws ParseException;
4582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContentEncodingHeader createContentEncodingHeader(String encoding)
4782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
4882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
4982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContentLanguageHeader createContentLanguageHeader(Locale contentLanguage);
5082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
5182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContentLengthHeader createContentLengthHeader(int contentLength)
5282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
5382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
5482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ContentTypeHeader createContentTypeHeader(String contentType,
5582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            String contentSubType) throws ParseException;
5682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
5782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    /**
5882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @deprecated
5982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @see #createCSeqHeader(long, String)
6082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     */
6182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    CSeqHeader createCSeqHeader(int sequenceNumber, String method)
6282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException, InvalidArgumentException;
6382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
6482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    CSeqHeader createCSeqHeader(long sequenceNumber, String method)
6582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException, InvalidArgumentException;
6682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
6782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    DateHeader createDateHeader(Calendar date);
6882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
6982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ErrorInfoHeader createErrorInfoHeader(URI errorInfo);
7082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
7182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    EventHeader createEventHeader(String eventType) throws ParseException;
7282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
7382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ExpiresHeader createExpiresHeader(int expires)
7482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
7582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
7682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ExtensionHeader createExtensionHeader(String name, String value)
7782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
7882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
7982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    FromHeader createFromHeader(Address address, String tag)
8082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
8182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
8282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    Header createHeader(String name, String value) throws ParseException;
8382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    Header createHeader(String headerText) throws ParseException;
8482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
8582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    List createHeaders(String headers) throws ParseException;
8682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
8782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    InReplyToHeader createInReplyToHeader(String callId) throws ParseException;
8882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
8982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    MaxForwardsHeader createMaxForwardsHeader(int maxForwards)
9082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
9182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
9282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    MimeVersionHeader createMimeVersionHeader(int majorVersion,
9382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            int minorVersion) throws InvalidArgumentException;
9482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
9582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    MinExpiresHeader createMinExpiresHeader(int minExpires)
9682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
9782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
9882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    OrganizationHeader createOrganizationHeader(String organization)
9982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
10082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
10182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    PriorityHeader createPriorityHeader(String priority) throws ParseException;
10282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
10382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ProxyAuthenticateHeader createProxyAuthenticateHeader(String scheme)
10482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
10582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
10682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ProxyAuthorizationHeader createProxyAuthorizationHeader(String scheme)
10782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
10882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
10982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ProxyRequireHeader createProxyRequireHeader(String optionTag)
11082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
11182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
11282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RAckHeader createRAckHeader(long rSeqNumber, long cSeqNumber, String method)
11382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException, ParseException;
11482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
11582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    /**
11682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @deprecated
11782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @see #createRAckHeader(long, long, String)
11882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     */
11982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RAckHeader createRAckHeader(int rSeqNumber, int cSeqNumber, String method)
12082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException, ParseException;
12182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
12282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ReasonHeader createReasonHeader(String protocol, int cause, String text)
12382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException, ParseException;
12482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
12582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RecordRouteHeader createRecordRouteHeader(Address address);
12682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
12782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ReferToHeader createReferToHeader(Address address);
12882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
12982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ReplyToHeader createReplyToHeader(Address address);
13082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
13182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RequireHeader createRequireHeader(String optionTag) throws ParseException;
13282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
13382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RetryAfterHeader createRetryAfterHeader(int retryAfter)
13482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
13582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
13682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RouteHeader createRouteHeader(Address address);
13782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
13882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RSeqHeader createRSeqHeader(long sequenceNumber)
13982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
14082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
14182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    /**
14282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @deprecated
14382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     * @see #createRSeqHeader(long)
14482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan     */
14582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    RSeqHeader createRSeqHeader(int sequenceNumber)
14682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
14782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
14882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ServerHeader createServerHeader(List product) throws ParseException;
14982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
15082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    SIPETagHeader createSIPETagHeader(String etag) throws ParseException;
15182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
15282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    SIPIfMatchHeader createSIPIfMatchHeader(String etag) throws ParseException;
15382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
15482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    SubjectHeader createSubjectHeader(String subject) throws ParseException;
15582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
15682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    SubscriptionStateHeader createSubscriptionStateHeader(
15782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            String subscriptionState) throws ParseException;
15882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
15982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    SupportedHeader createSupportedHeader(String optionTag)
16082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
16182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
16282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    TimeStampHeader createTimeStampHeader(float timeStamp)
16382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException;
16482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
16582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ToHeader createToHeader(Address address, String tag) throws ParseException;
16682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
16782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    UnsupportedHeader createUnsupportedHeader(String optionTag)
16882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
16982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
17082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    UserAgentHeader createUserAgentHeader(List product) throws ParseException;
17182ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
17282ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    ViaHeader createViaHeader(String host, int port, String transport,
17382ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            String branch) throws InvalidArgumentException, ParseException;
17482ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
17582ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    WarningHeader createWarningHeader(String agent, int code, String comment)
17682ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws InvalidArgumentException, ParseException;
17782ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan
17882ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan    WWWAuthenticateHeader createWWWAuthenticateHeader(String scheme)
17982ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan            throws ParseException;
18082ea0633e3a0e2d77feed89f033e1dcf4a656c20Hung-ying Tyan}
181