package org.geogebra.common.move.ggtapi.models; import org.geogebra.common.move.models.BaseModel; /** * Represents a user in GeoGebraTube. Each user is identified by a user name. * * The login token is used for the authorization of the user via the * GeoGebraTube API. * * @author stefan * */ public class GeoGebraTubeUser extends BaseModel { private String userName = null; private String token = null; private int userId = -1; private String identifier = null; private String profileURL; private String realName = null; private String cookie; private String image; private String language; private String gender; /** * Creates a new user with the specified login token * * @param token * The login token of the user */ public GeoGebraTubeUser(String token) { this.token = token; } /** * @param token * login token * @param cookie * login cookie */ public GeoGebraTubeUser(String token, String cookie) { this.token = token; this.cookie = cookie; } /** * @return The Login token of the user */ public String getLoginToken() { return token; } /** * Token needs to be set on cookie authentication * * @param token * new token */ public void setToken(String token) { this.token = token; } /** * @return The user name of the user */ public String getUserName() { return userName; } /** * Sets the user name for the user. Usually this is done after the user was * authorized via the GeoGebraTube API and the user name is received as * response. * * @param userName * The new user name to set. */ public void setUserName(String userName) { this.userName = userName; } /** * Sets the userid from GeoGeoGebraTube * * @param userId * The new userId */ public void setUserId(int userId) { this.userId = userId; } /** * Sets the real name from GeoGeoGebraTube * * @param realName * The new real name of the user */ public void setRealName(String realName) { this.realName = realName; } /** * @return the userid */ public int getUserId() { return userId; } /** * @return the real name */ public String getRealName() { return realName; } /** * @return URl to profile page */ public String getProfileURL() { return this.profileURL; } /** * @param URL * of the profile page */ public void setProfileURL(String URL) { this.profileURL = URL; } /** * @param gender * {@code F} for female {@code M} for male {@code O} for not * specified */ public void setGender(String gender) { this.gender = gender; } /** * @return gender of user * @see #setGender(String) */ public String getGender() { return this.gender; } /** * @return The login identifier of this user */ public String getIdentifier() { return identifier; } /** * @param identifier * The login identifier of this user */ public void setIdentifier(String identifier) { this.identifier = identifier; } public boolean hasGoogleDrive() { return this.identifier.startsWith("google:"); } public boolean hasOneDrive() { // TODO Auto-generated method stub return false; } public String getCookie() { return this.cookie; } public void setImageURL(String url) { this.image = url; } public String getImageURL() { return this.image; } public String getLanguage() { return this.language; } public void setLanguage(String language) { this.language = language; } }