summaryrefslogtreecommitdiffstats
path: root/java/gov/nist/javax/sip/address/UserInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/gov/nist/javax/sip/address/UserInfo.java')
-rw-r--r--java/gov/nist/javax/sip/address/UserInfo.java183
1 files changed, 183 insertions, 0 deletions
diff --git a/java/gov/nist/javax/sip/address/UserInfo.java b/java/gov/nist/javax/sip/address/UserInfo.java
new file mode 100644
index 0000000..0b558ee
--- /dev/null
+++ b/java/gov/nist/javax/sip/address/UserInfo.java
@@ -0,0 +1,183 @@
+/*
+* 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;
+ }
+}