/*
* Copyright 2010-2015 Institut Pasteur.
*
* This file is part of Icy.
*
* Icy is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Icy is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Icy. If not, see <http://www.gnu.org/licenses/>.
*/
package icy.network;
import icy.preferences.XMLPreferences;
import icy.util.StringUtil;
/**
* @author Stephane
*/
public class AuthenticationInfo
{
private static final String ID_LOGIN = "login";
private static final String ID_PASSWORD = "password";
private static final String ID_ENABLED = "enabled";
private String login;
private String password;
private boolean enabled;
public AuthenticationInfo(String login, String password, boolean enabled)
{
super();
this.login = login;
this.password = password;
this.enabled = enabled;
}
public AuthenticationInfo(XMLPreferences node)
{
this("", "", false);
load(node);
}
/**
* @return the login
*/
public String getLogin()
{
return login;
}
/**
* @param login
* the login to set
*/
public void setLogin(String login)
{
this.login = login;
}
/**
* @return the password
*/
public String getPassword()
{
return password;
}
/**
* @param password
* the password to set
*/
public void setPassword(String password)
{
this.password = password;
}
/**
* @return the enabled
*/
public boolean isEnabled()
{
return enabled;
}
/**
* @param enabled
* the enabled to set
*/
public void setEnabled(boolean enabled)
{
this.enabled = enabled;
}
public void save(XMLPreferences node)
{
if (node != null)
{
node.put(ID_LOGIN, login);
node.put(ID_PASSWORD, password);
node.putBoolean(ID_ENABLED, enabled);
}
}
public void load(XMLPreferences node)
{
if (node != null)
{
login = node.get(ID_LOGIN, "");
password = node.get(ID_PASSWORD, "");
enabled = node.getBoolean(ID_ENABLED, false);
}
}
@Override
public int hashCode()
{
return login.hashCode() ^ password.hashCode();
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof AuthenticationInfo)
{
final AuthenticationInfo auth = (AuthenticationInfo) obj;
return StringUtil.equals(auth.login, login) && StringUtil.equals(auth.password, password);
}
return super.equals(obj);
}
}