package net.sf.gazpachoquest.dto.auth; import java.io.Serializable; import java.security.Principal; import java.util.Set; import net.sf.gazpachoquest.dto.answers.TextAnswer; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = TextAnswer.class, name = "T"), @JsonSubTypes.Type(value = RespondentAccount.class, name = "R"), }) public interface Account extends Principal, Serializable { String getGivenNames(); void setGivenNames(String givenNames); String getSurname(); void setSurname(String surname); String getEmail(); void setEmail(String email); String getApiKey(); void setApiKey(String apiKey); Set<RoleAccount> getRoles(); void setRoles(Set<RoleAccount> roles); @Override String getName(); String getFullName(); String getSecret(); void setSecret(String secret); }