001: /*
002: * JOSSO: Java Open Single Sign-On
003: *
004: * Copyright 2004-2008, Atricore, Inc.
005: *
006: * This is free software; you can redistribute it and/or modify it
007: * under the terms of the GNU Lesser General Public License as
008: * published by the Free Software Foundation; either version 2.1 of
009: * the License, or (at your option) any later version.
010: *
011: * This software is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this software; if not, write to the Free
018: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
019: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
020: */
021: package org.josso.gateway.identity.service;
022:
023: import org.josso.auth.SimplePrincipal;
024: import org.josso.gateway.SSONameValuePair;
025:
026: import java.util.ArrayList;
027: import java.util.List;
028:
029: /**
030: * Default BaseUser implementation, it also extends the auth principal impl.
031: *
032: * @author <a href="mailto:sgonzalez@josso.org">Sebastian Gonzalez Oyuela</a>
033: * @version $Id: BaseUserImpl.java 508 2008-02-18 13:32:29Z sgonzalez $
034: */
035:
036: public class BaseUserImpl extends SimplePrincipal implements BaseUser {
037:
038: // Instance variables
039: private String _name;
040: private List _properties;
041:
042: public BaseUserImpl() {
043: super (null);
044: _properties = new ArrayList();
045: }
046:
047: public BaseUserImpl(String username) {
048: super (username);
049: _name = username;
050: _properties = new ArrayList();
051: }
052:
053: /**
054: * User login name, is a unique name in a domain.
055: */
056: public String getName() {
057: return _name;
058: }
059:
060: /**
061: * @deprecated this method always returns null
062: * @return always null
063: */
064: public String getSessionId() {
065: return null;
066: }
067:
068: public SSONameValuePair[] getProperties() {
069: return (SSONameValuePair[]) _properties
070: .toArray(new SSONameValuePair[_properties.size()]);
071: }
072:
073: // ---------------------------------------------
074: // Package utils
075: // ---------------------------------------------
076:
077: public void setName(String name) {
078: _name = name;
079: }
080:
081: /**
082: * Replaces all user properties with the received ones.
083: */
084: public void setProperties(SSONameValuePair[] pairs) {
085: _properties.clear();
086: for (int i = 0; i < pairs.length; i++) {
087: SSONameValuePair pair = pairs[i];
088: _properties.add(pair);
089: }
090: }
091:
092: public void addProperty(String name, String value) {
093: addProperty(new SSONameValuePair(name, value));
094: }
095:
096: public void addProperty(SSONameValuePair property) {
097: _properties.add(property);
098: }
099:
100: /**
101: * Compare this BaseUser's name against another BaseUser
102: *
103: * @return true if name equals another.getName();
104: */
105: public boolean equals(Object another) {
106: if (!(another instanceof BaseUser))
107: return false;
108: String anotherName = ((BaseUser) another).getName();
109: boolean equals = false;
110: if (_name == null)
111: equals = anotherName == null;
112: else
113: equals = _name.equals(anotherName);
114: return equals;
115: }
116:
117: public int hashCode() {
118: return (_name == null ? 0 : _name.hashCode());
119: }
120:
121: public String toString() {
122: return _name;
123: }
124:
125: }
|