Package com.iizix.server.user
Class UserProfileImageRequest
- java.lang.Object
- com.iizix.server.user.UserProfileImageRequest
- All Implemented Interfaces:
IUserProfileImageRequest
,java.lang.Cloneable
public class UserProfileImageRequest extends java.lang.Object implements IUserProfileImageRequest
The request class for a User Profile Image.This class is NOT thread-safe when building the request, but is once the profile image is being retrieved. This is done by design to keep garbage collection down.
- Author:
- Christopher Mindus
Field Summary
Fields Modifier and Type Field Description static double[]
COMMON_DPRS_EMPTY
COMMON_DPRS_EMPTY: An emptydouble array
used to create images with DPR's of the common values: 1.0d, 1.5d, 2.0d, 3.0d, 4.0d.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UserProfileImageRequest
appSessionGyro(IAppSessionGyro appGyro)
Assigns the App Session Gyro to use.UserProfileImageRequest
circle()
Specifies that a circle should be used, if thewidth
andheight
are equal, otherwise it will become an ellipse.UserProfileImageRequest
circle(int size)
Specifies that a circle should be used in the set logical pixel size.UserProfileImageRequest
clientSessionGyro(IClientSessionGyro clientGyro)
Assigns the Client Session Gyro to use.UserProfileImageRequest
clone()
Clones the instance.UserProfileImageRequest
corners(int corners)
The corner size of the image in pixels with DPR = 1.0d.UserProfileImageRequest
createDefault(boolean doCreateDefault)
Returns if creation of a default user profile image if none is found for a user ID or user Name should be performed or not.UserProfileImageRequest
currentAppSessionGyro()
Assigns the App Session Gyro to use.UserProfileImageRequest
currentClientSessionGyro()
Assigns the current Client Session Gyro to use.boolean
doCreateDefault()
Returns if creation of a default user profile image if none is found for a user ID or user Name should be performed or not.UserProfileImageRequest
DRPs(double[] dprs)
Sets the DRP's to use.AppSessionGyro
getAppSessionGyro()
Gets the application session gyro.ClientSessionGyro
getClientSessionGyro()
Gets the client session gyro.int
getCorners()
Gets the corner size of the image in pixels with DPR = 1.0d.double[]
getDPRs()
Gets the DPR's requested.int
getHeight()
The height requested of the image, always greater than zero.int
getQuality()
Gets the image quality.AuthenticatedUser
getUser()
Gets the user.long
getUserID()
Gets the user ID.java.lang.String
getUserName()
Gets the user name.int
getWidth()
Gets the width requested of the image, always greater than zero.boolean
isCircle()
Checks if it's a circle or oval (in case of differentwidth
andheight
)UserProfileImageRequest
quality(int quality)
Sets the image quality.UserProfileImageRequest
size(int size)
Specifies the size of the image.UserProfileImageRequest
size(int width, int height)
Specifies the size of the image.UserProfileImageRequest
user(long userID)
Specifies the user to use.UserProfileImageRequest
user(java.lang.String userName)
Specifies the user name.
Method Detail
clone
public UserProfileImageRequest clone()
Clones the instance.- Specified by:
clone
in interfaceIUserProfileImageRequest
- Overrides:
clone
in classjava.lang.Object
- Returns:
- A new UserProfileImageRequest cloned instance.
currentClientSessionGyro
public UserProfileImageRequest currentClientSessionGyro()
Assigns the current Client Session Gyro to use. The current thread is used to get it, and will also set the App Session Gyro if not already set.- Specified by:
currentClientSessionGyro
in interfaceIUserProfileImageRequest
- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
NotFoundException
- If currentclientGyro
is not found.
currentAppSessionGyro
public UserProfileImageRequest currentAppSessionGyro()
Assigns the App Session Gyro to use. If this method is not called, an attempt to locate the current App Session Gyro from the current thread might be done. The user ID or user Name will be initialized from this app session if not set to another value.- Specified by:
currentAppSessionGyro
in interfaceIUserProfileImageRequest
- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
NotFoundException
- IfappGyro
is not found.
appSessionGyro
public UserProfileImageRequest appSessionGyro(IAppSessionGyro appGyro)
Assigns the App Session Gyro to use. If this method is not called, an attempt to locate the current App Session Gyro from the current thread might be done. The user ID or user Name will be initialized from this app session if not set to another value.- Specified by:
appSessionGyro
in interfaceIUserProfileImageRequest
- Parameters:
appGyro
- The application session gyro to use.- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
java.lang.NullPointerException
- IfappGyro
isnull
.
clientSessionGyro
public UserProfileImageRequest clientSessionGyro(IClientSessionGyro clientGyro)
Assigns the Client Session Gyro to use. If this method is not called, an attempt to locate the current Client Session Gyro from the current thread might be done. Setting theclientGyro
will enable the DPR's to be read for the current client session.- Specified by:
clientSessionGyro
in interfaceIUserProfileImageRequest
- Parameters:
clientGyro
- The client session gyro to use.- Returns:
- The UserProfileImageRequest "this" instance.
user
public UserProfileImageRequest user(long userID) throws NotFoundException
Specifies the user to use.If an existing
userName
has been set, this call will reset it tonull
.- Specified by:
user
in interfaceIUserProfileImageRequest
- Parameters:
userID
- Requested user ID, or a negative value to use the current user, determined from the current Client or Application session.- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
NotFoundException
- If the user ID is not found.java.lang.IllegalArgumentException
- If the user ID is invalid (zero or negative value).
user
public UserProfileImageRequest user(java.lang.String userName)
Specifies the user name.- Specified by:
user
in interfaceIUserProfileImageRequest
- Parameters:
userName
- The user name.- Throws:
NotFoundException
- If the user name is not found.java.lang.NullPointerException
- IfuserName
isnull
.
size
public UserProfileImageRequest size(int size)
Specifies the size of the image.- Specified by:
size
in interfaceIUserProfileImageRequest
- Parameters:
size
- The size of width in logical pixels in the range of 16 to 400.- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
java.lang.IllegalArgumentException
- Ifsize
is not in the range of 16 to 400.
size
public UserProfileImageRequest size(int width, int height)
Specifies the size of the image.- Specified by:
size
in interfaceIUserProfileImageRequest
- Parameters:
width
- The width in logical pixels in the range of 16 to 400.height
- The height in logical pixels in the range of 16 to 400.- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
java.lang.IllegalArgumentException
- Ifwidth
orheight
is not in the range of 16 to 400.
quality
public UserProfileImageRequest quality(int quality)
Sets the image quality.- Specified by:
quality
in interfaceIUserProfileImageRequest
- Parameters:
quality
- Zero for .PNG format loss-less with transparency support (default value), otherwise a value between 1 (worst possible quality) and 100 (loss-less) in .JPG format.- Throws:
java.lang.IllegalArgumentException
- Ifquality
is not in the range of 0 to 100.
circle
public UserProfileImageRequest circle()
Specifies that a circle should be used, if thewidth
andheight
are equal, otherwise it will become an ellipse.- Specified by:
circle
in interfaceIUserProfileImageRequest
- Returns:
- The UserProfileImageRequest "this" instance.
circle
public UserProfileImageRequest circle(int size)
Specifies that a circle should be used in the set logical pixel size. The image width and height will be set to the size specified.- Specified by:
circle
in interfaceIUserProfileImageRequest
- Parameters:
size
- The size of width in logical pixels in the range of 16 to 400. The width and height will be set to the specified size.- Returns:
- The UserProfileImageRequest "this" instance.
- Throws:
java.lang.IllegalArgumentException
- Ifsize
is not in the range of 16 to 400.
corners
public UserProfileImageRequest corners(int corners)
The corner size of the image in pixels with DPR = 1.0d. The corner size is multiplied with the DPR for high resolution images.A value of
zero
indicates rectangular corners, i.e. no rounding.A negative value will use the corners of half the
width
and half theheight
.- Specified by:
corners
in interfaceIUserProfileImageRequest
- Returns:
- The UserProfileImageRequest "this" instance.
DRPs
public UserProfileImageRequest DRPs(double[] dprs)
Sets the DRP's to use.- Specified by:
DRPs
in interfaceIUserProfileImageRequest
- Parameters:
dprs
- The DPR's to use. The first value MUST ALWAYs be 1.0d. Set to{@link #COMMON_DPRS_EMPTY}
if you wish to use the default DPR's values 1.0d, 1.5d, 2.0d, 3.0d and 4.0d. Set tonull
if the array should be build from the Client Session (must be non-null}, otherwise the single DPR 1.0d will be used.- Throws:
java.lang.IllegalArgumentException
- If the array is invalid or has invalid values.
createDefault
public UserProfileImageRequest createDefault(boolean doCreateDefault)
Returns if creation of a default user profile image if none is found for a user ID or user Name should be performed or not.- Specified by:
createDefault
in interfaceIUserProfileImageRequest
- Parameters:
doCreateDefault
- The create default flag,false
by default.- Returns:
- The UserProfileImageRequest "this" instance.
getAppSessionGyro
public AppSessionGyro getAppSessionGyro()
Gets the application session gyro.- Specified by:
getAppSessionGyro
in interfaceIUserProfileImageRequest
- Returns:
- The App Session Gyro, or
null
if not set.
getClientSessionGyro
public ClientSessionGyro getClientSessionGyro()
Gets the client session gyro.- Specified by:
getClientSessionGyro
in interfaceIUserProfileImageRequest
- Returns:
- The Client Session Gyro, or
null
if not set.
getUser
public AuthenticatedUser getUser()
Gets the user.- Returns:
- The authenticated user, or
null
for none.
getUserID
public long getUserID()
Gets the user ID.- Specified by:
getUserID
in interfaceIUserProfileImageRequest
- Returns:
- The user ID that has been set, or
-1L
if the session is still unauthenticated or not yet set, orzero
if an undefined user "@undefined" is signed in.
getUserName
public java.lang.String getUserName()
Gets the user name.- Specified by:
getUserName
in interfaceIUserProfileImageRequest
- Returns:
- The user name, or
null
if unauthenticated or not yet set, or "@undefined
" if an undefined user is signed in.
getWidth
public int getWidth()
Gets the width requested of the image, always greater than zero.- Specified by:
getWidth
in interfaceIUserProfileImageRequest
- Returns:
- The width in logical pixels, zero if not yet set, otherwise in the range of 16 to 400.
getHeight
public int getHeight()
The height requested of the image, always greater than zero.- Specified by:
getHeight
in interfaceIUserProfileImageRequest
- Returns:
- The height in logical pixels, zero if not yet set, otherwise in the range of 16 to 400.
getQuality
public int getQuality()
Gets the image quality.- Specified by:
getQuality
in interfaceIUserProfileImageRequest
- Returns:
- The Image quality: zero for .PNG format loss-less with transparency support (default value), otherwise a value between 1 (worst possible quality) and 100 (loss-less) in .JPG format.
getCorners
public int getCorners()
Gets the corner size of the image in pixels with DPR = 1.0d. The corner size is multiplied with the DPR for high resolution images.- Specified by:
getCorners
in interfaceIUserProfileImageRequest
- Returns:
- The corner logical pixel value,
zero
for square corners (or rectangular, i.e. not rounded),-1
for circle or oval (in case of differentwidth
andheight
).A value of
zero
indicates rectangular corners, i.e. no rounding.A negative value will use the corners of half the
width
and half theheight
.
isCircle
public boolean isCircle()
Checks if it's a circle or oval (in case of differentwidth
andheight
)- Specified by:
isCircle
in interfaceIUserProfileImageRequest
- Returns:
- Flag indicating if a circle or oval image will be the result.
doCreateDefault
public boolean doCreateDefault()
Returns if creation of a default user profile image if none is found for a user ID or user Name should be performed or not.- Specified by:
doCreateDefault
in interfaceIUserProfileImageRequest
- Returns:
- The create default flag,
false
by default.
getDPRs
public double[] getDPRs()
Gets the DPR's requested.- Specified by:
getDPRs
in interfaceIUserProfileImageRequest
- Returns:
- A cloned array of the requested DPR's.