| /* |
| * Conditions Of Use |
| * |
| * This software was developed by employees of the National Institute of |
| * Standards and Technology (NIST), an agency of the Federal Government. |
| * Pursuant to title 15 Untied States Code Section 105, works of NIST |
| * employees are not subject to copyright protection in the United States |
| * and are considered to be in the public domain. As a result, a formal |
| * license is not needed to use the software. |
| * |
| * This software is provided by NIST as a service and is expressly |
| * provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED |
| * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT |
| * AND DATA ACCURACY. NIST does not warrant or make any representations |
| * regarding the use of the software or the results thereof, including but |
| * not limited to the correctness, accuracy, reliability or usefulness of |
| * the software. |
| * |
| * Permission to use this software is contingent upon your acceptance |
| * of the terms of this agreement |
| * |
| * . |
| * |
| */ |
| /* |
| * Acknowledgement -- Lamine Brahimi |
| * Submitted a bug fix for a this class. |
| */ |
| /******************************************************************************* |
| * Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * |
| *******************************************************************************/ |
| package gov.nist.javax.sip.address; |
| |
| /** |
| * User information part of a URL. |
| * |
| * @version 1.2 $Revision: 1.8 $ $Date: 2009/07/17 18:57:23 $ |
| * @author M. Ranganathan <br/> |
| * |
| */ |
| public final class UserInfo extends NetObject { |
| |
| |
| private static final long serialVersionUID = 7268593273924256144L; |
| |
| /** user field |
| */ |
| protected String user; |
| |
| /** password field |
| */ |
| protected String password; |
| |
| /** userType field |
| */ |
| protected int userType; |
| |
| /** Constant field |
| */ |
| public final static int TELEPHONE_SUBSCRIBER = 1; |
| |
| /** constant field |
| */ |
| public final static int USER = 2; |
| |
| /** Default constructor |
| */ |
| public UserInfo() { |
| super(); |
| } |
| |
| /** |
| * Compare for equality. |
| * @param obj Object to set |
| * @return true if the two headers are equals, false otherwise. |
| */ |
| public boolean equals(Object obj) { |
| if (getClass() != obj.getClass()) { |
| return false; |
| } |
| UserInfo other = (UserInfo) obj; |
| if (this.userType != other.userType) { |
| return false; |
| } |
| if (!this.user.equalsIgnoreCase(other.user)) { |
| return false; |
| } |
| if (this.password != null && other.password == null) |
| return false; |
| |
| if (other.password != null && this.password == null) |
| return false; |
| |
| if (this.password == other.password) |
| return true; |
| |
| return (this.password.equals(other.password)); |
| } |
| |
| /** |
| * Encode the user information as a string. |
| * @return String |
| */ |
| public String encode() { |
| return encode(new StringBuffer()).toString(); |
| } |
| |
| public StringBuffer encode(StringBuffer buffer) { |
| if (password != null) |
| buffer.append(user).append(COLON).append(password); |
| else |
| buffer.append(user); |
| |
| return buffer; |
| } |
| |
| /** Clear the password field. |
| */ |
| public void clearPassword() { |
| this.password = null; |
| } |
| |
| /** |
| * Gets the user type (which can be set to TELEPHONE_SUBSCRIBER or USER) |
| * @return the type of user. |
| */ |
| public int getUserType() { |
| return userType; |
| } |
| |
| /** get the user field. |
| * @return String |
| */ |
| public String getUser() { |
| return user; |
| } |
| |
| /** get the password field. |
| * @return String |
| */ |
| public String getPassword() { |
| return password; |
| } |
| |
| /** |
| * Set the user member |
| * @param user String to set |
| */ |
| public void setUser(String user) { |
| this.user = user; |
| // BUG Fix submitted by Lamine Brahimi |
| // add this (taken form sip_messageParser) |
| // otherwise comparison of two SipUrl will fail because this |
| // parameter is not set (whereas it is set in sip_messageParser). |
| if (user != null |
| && (user.indexOf(POUND) >= 0 || user.indexOf(SEMICOLON) >= 0)) { |
| setUserType(TELEPHONE_SUBSCRIBER); |
| } else { |
| setUserType(USER); |
| } |
| } |
| |
| /** |
| * Set the password member |
| * @param p String to set |
| */ |
| public void setPassword(String p) { |
| password = p; |
| } |
| |
| /** |
| * Set the user type (to TELEPHONE_SUBSCRIBER or USER). |
| * @param type int to set |
| * @throws IllegalArgumentException if type is not in range. |
| */ |
| public void setUserType(int type) throws IllegalArgumentException { |
| if (type != TELEPHONE_SUBSCRIBER && type != USER) { |
| throw new IllegalArgumentException("Parameter not in range"); |
| } |
| userType = type; |
| } |
| } |