/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.core.user;
import java.util.Locale;
import java.util.Map;
import org.threeten.bp.ZoneId;
import com.opengamma.util.PublicAPI;
/**
* A user profile, containing settings specific to how the user uses the system.
* <p>
* This interface is read-only.
* Implementations may be mutable.
*/
@PublicAPI
public interface UserProfile {
/**
* The session attribute key for the user profile.
* This is used to store the profile in the Apache Shiro session.
*/
String ATTRIBUTE_KEY = UserProfile.class.getName();
/**
* Gets the display name, such as the user's real name.
* This is typically used in a GUI and is not guaranteed to be unique.
*
* @return the display user name, may be null
*/
String getDisplayName();
/**
* Gets the locale that the user prefers.
*
* @return the locale, not null
*/
Locale getLocale();
/**
* Gets the time-zone used to display local times.
*
* @return the time-zone, not null
*/
ZoneId getZone();
/**
* Gets the date format style that the user prefers.
*
* @return the date format style, null
*/
DateStyle getDateStyle();
/**
* Gets the time format style that the user prefers.
*
* @return the time format style, null
*/
TimeStyle getTimeStyle();
/**
* Gets the extended map of profile data.
*
* @return the extended map of profile data, may be null
*/
Map<String, String> getExtensions();
}