1package gov.nist.javax.sip.header.ims;
2/*
3* Conditions Of Use
4*
5* This software was developed by employees of the National Institute of
6* Standards and Technology (NIST), an agency of the Federal Government.
7* Pursuant to title 15 Untied States Code Section 105, works of NIST
8* employees are not subject to copyright protection in the United States
9* and are considered to be in the public domain.  As a result, a formal
10* license is not needed to use the software.
11*
12* This software is provided by NIST as a service and is expressly
13* provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
14* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
15* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
16* AND DATA ACCURACY.  NIST does not warrant or make any representations
17* regarding the use of the software or the results thereof, including but
18* not limited to the correctness, accuracy, reliability or usefulness of
19* the software.
20*
21* Permission to use this software is contingent upon your acceptance
22* of the terms of this agreement
23*
24* .
25*
26*/
27import java.text.ParseException;
28import gov.nist.javax.sip.header.SIPHeader;
29import javax.sip.header.ExtensionHeader;
30/**
31 *
32 * @author aayush.bhatnagar
33 * Rancore Technologies Pvt Ltd, Mumbai India.
34 *
35 */
36public class PAssertedService extends SIPHeader implements PAssertedServiceHeader, SIPHeaderNamesIms, ExtensionHeader{
37
38    private String subServiceIds;
39    private String subAppIds;
40
41    protected PAssertedService(String name) {
42        super(NAME);
43    }
44
45    public PAssertedService()
46    {
47        super(P_ASSERTED_SERVICE);
48    }
49
50    @Override
51    protected String encodeBody() {
52        StringBuffer retval = new StringBuffer();
53
54         retval.append(ParameterNamesIms.SERVICE_ID);
55
56            if(this.subServiceIds!=null)
57            {
58                retval.append(ParameterNamesIms.SERVICE_ID_LABEL).append(".");
59
60            retval.append(this.getSubserviceIdentifiers());
61            }
62
63            else if(this.subAppIds!=null)
64            {
65                retval.append(ParameterNamesIms.APPLICATION_ID_LABEL).append(".");
66                retval.append(this.getApplicationIdentifiers());
67            }
68
69        return retval.toString();
70    }
71
72    public void setValue(String value) throws ParseException {
73        throw new ParseException(value,0);
74
75    }
76
77    public String getApplicationIdentifiers() {
78        if(this.subAppIds.charAt(0)=='.')
79        {
80            return this.subAppIds.substring(1);
81        }
82        return this.subAppIds;
83    }
84
85    public String getSubserviceIdentifiers() {
86        if(this.subServiceIds.charAt(0)=='.')
87        {
88            return this.subServiceIds.substring(1);
89        }
90        return this.subServiceIds;
91    }
92    public void setApplicationIdentifiers(String appids) {
93        this.subAppIds = appids;
94
95    }
96
97    public void setSubserviceIdentifiers(String subservices) {
98        this.subServiceIds = subservices;
99
100    }
101
102    public boolean equals(Object other)
103    {
104        return (other instanceof PAssertedServiceHeader) && super.equals(other);
105
106    }
107
108
109    public Object clone() {
110        PAssertedService retval = (PAssertedService) super.clone();
111        return retval;
112    }
113
114
115}
116