/*******************************************************************************
* Copyright (c) 2014 antoniomariasanchez at gmail.com. All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0 which accompanies this distribution, and is
* available at http://www.gnu.org/licenses/gpl.html
*
* Contributors: antoniomaria - initial API and implementation
******************************************************************************/
package net.sf.gazpachoquest.dto.auth;
import java.util.HashSet;
import java.util.Set;
import net.sf.gazpachoquest.types.Language;
import org.apache.commons.lang3.builder.ToStringBuilder;
import com.fasterxml.jackson.annotation.JsonIgnore;
@SuppressWarnings("serial")
public abstract class AbstractAccount implements Account {
protected String givenNames;
protected String surname;
protected String email;
protected String apiKey;
protected String secret;
protected Set<RoleAccount> roles;
protected Language preferredLanguage;
protected AbstractAccount() {
super();
}
@Override
public String getGivenNames() {
return givenNames;
}
@Override
public void setGivenNames(String givenNames) {
this.givenNames = givenNames;
}
@Override
public String getSurname() {
return surname;
}
@Override
public void setSurname(String surname) {
this.surname = surname;
}
@Override
public String getEmail() {
return email;
}
@Override
public void setEmail(String email) {
this.email = email;
}
@Override
public String getApiKey() {
return apiKey;
}
@Override
public void setApiKey(String apiKey) {
this.apiKey = apiKey;
}
@Override
public Set<RoleAccount> getRoles() {
if (roles == null) {
roles = new HashSet<>();
}
return roles;
}
@Override
public void setRoles(Set<RoleAccount> roles) {
this.roles = roles;
}
@Override
public String getSecret() {
return secret;
}
@Override
public void setSecret(String secret) {
this.secret = secret;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
@Override
@JsonIgnore
public String getName() {
return givenNames;
}
@JsonIgnore
public boolean hasPreferredLanguage() {
return preferredLanguage != null;
}
public Language getPreferredLanguage() {
return preferredLanguage;
}
public void setPreferredLanguage(Language preferedLanguage) {
preferredLanguage = preferedLanguage;
}
@Override
@JsonIgnore
public String getFullName() {
return new StringBuilder().append(givenNames).append(" ").append(surname).toString();
}
}