Home | History | Annotate | Download | only in ims
      1 /*
      2 * Conditions Of Use
      3 *
      4 * This software was developed by employees of the National Institute of
      5 * Standards and Technology (NIST), an agency of the Federal Government.
      6 * Pursuant to title 15 Untied States Code Section 105, works of NIST
      7 * employees are not subject to copyright protection in the United States
      8 * and are considered to be in the public domain.  As a result, a formal
      9 * license is not needed to use the software.
     10 *
     11 * This software is provided by NIST as a service and is expressly
     12 * provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
     13 * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
     14 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
     15 * AND DATA ACCURACY.  NIST does not warrant or make any representations
     16 * regarding the use of the software or the results thereof, including but
     17 * not limited to the correctness, accuracy, reliability or usefulness of
     18 * the software.
     19 *
     20 * Permission to use this software is contingent upon your acceptance
     21 * of the terms of this agreement
     22 *
     23 * .
     24 *
     25 */
     26 /*****************************************************************************
     27  * PRODUCT OF PT INOVACAO - EST DEPARTMENT and Aveiro University - Portugal)   *
     28  *****************************************************************************/
     29 
     30 
     31 
     32 
     33 package gov.nist.javax.sip.header.ims;
     34 
     35 import java.text.ParseException;
     36 
     37 import javax.sip.header.ExtensionHeader;
     38 import javax.sip.header.Parameters;
     39 
     40 import gov.nist.core.NameValueList;
     41 import gov.nist.javax.sip.header.SIPHeader;
     42 
     43 /**
     44  * Privacy SIP header - RFC 3323.
     45  *
     46  * @author Miguel Freitas (IT) PT-Inovacao
     47  */
     48 
     49 
     50 public class Privacy
     51     extends SIPHeader
     52     implements PrivacyHeader, SIPHeaderNamesIms, ExtensionHeader
     53 {
     54 
     55     /**
     56      * Privacy type
     57      */
     58     private String privacy;
     59 
     60 
     61     /**
     62      * Default constructor.
     63      */
     64     public Privacy() {
     65         super(PRIVACY);
     66     }
     67 
     68     /**
     69      * Constructor given a privacy type
     70      *@param privacy
     71      */
     72     public Privacy(String privacy)
     73     {
     74         this();
     75         this.privacy = privacy;
     76 
     77     }
     78 
     79 
     80     /**
     81      * Encode into a canonical string.
     82      * @return String.
     83      */
     84     public String encodeBody()
     85     {
     86         return this.privacy;
     87     }
     88 
     89 
     90 
     91     /**
     92      * Get privacy type
     93      * @return privacy type
     94      */
     95     public String getPrivacy()
     96     {
     97         return privacy;
     98     }
     99 
    100 
    101 
    102     /**
    103      * set the privacy type.
    104      * @param  privacy -- privacy type to set.
    105      */
    106 
    107     public void setPrivacy(String privacy) throws ParseException
    108     {
    109 
    110         if (privacy == null || privacy == "")
    111             throw new NullPointerException(
    112                 "JAIN-SIP Exception, "
    113                     + " Privacy, setPrivacy(), privacy value is null or empty");
    114         this.privacy = privacy;
    115 
    116     }
    117 
    118     /**
    119      * Suppress direct setting of values.
    120      *
    121      */
    122     public void setValue(String value) throws ParseException {
    123         throw new ParseException(value,0);
    124 
    125     }
    126 
    127 
    128     public boolean equals(Object other)
    129     {
    130         if (other instanceof PrivacyHeader)
    131         {
    132             PrivacyHeader o = (PrivacyHeader) other;
    133             return (this.getPrivacy().equals( o.getPrivacy() ));
    134         }
    135         return false;
    136 
    137     }
    138 
    139 
    140     public Object clone() {
    141         Privacy retval = (Privacy) super.clone();
    142         if (this.privacy != null)
    143             retval.privacy = this.privacy;
    144         return retval;
    145     }
    146 
    147 
    148 
    149 }
    150