This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
envoy/src/main/java/envoy/data/User.java

96 lines
2.0 KiB
Java

package envoy.data;
import java.io.Serializable;
/**
* Represents a unique user with a unique, numeric ID, a name and a current
* {@link UserStatus}.<br>
* <br>
* Project: <strong>envoy-common</strong><br>
* File: <strong>User.java</strong><br>
* Created: <strong>28.12.2019</strong><br>
*
* @author Kai S. K. Engelbart
* @since Envoy Common v0.2-alpha
*/
public class User implements Serializable {
/**
* This enumeration defines all possible statuses a user can have.
*
* @since Envoy Common v0.2-alpha
*/
public static enum UserStatus {
/**
* select this, if a user is online and can be interacted with
*/
ONLINE,
/**
* select this, if a user is online but unavailable at the moment (sudden
* interruption)
*/
AWAY,
/**
* select this, if a user is online but unavailable at the moment (polite way)
*/
BUSY,
/**
* select this, if a user is offline
*/
OFFLINE;
}
private final long id;
private final String name;
private UserStatus status;
private static final long serialVersionUID = 3530947374856708236L;
/**
* Initializes a {@link User}. The {@link UserStatus} is set to
* {@link UserStatus#OFFLINE}.
*
* @param id unique ID
* @param name user name
* @since Envoy Client v0.2-alpha
*/
public User(long id, String name) {
this.id = id;
this.name = name;
status = UserStatus.OFFLINE;
}
@Override
public String toString() { return String.format("User[id=%d,name=%s,status=%s]", id, name, status); }
/**
* @return the ID of this {@link User}
* @since Envoy Client v0.2-alpha
*/
public long getId() { return id; }
/**
* @return the name of this {@link User}
* @since Envoy Client v0.2-alpha
*/
public String getName() { return name; }
/**
* @return the current status of this user
* @since Envoy Client v0.2-alpha
*/
public UserStatus getStatus() { return status; }
/**
* Sets the current status of this user
*
* @param status the status to set
* @since Envoy Client v0.2-alpha
*/
public void setStatus(UserStatus status) { this.status = status; }
}