Class UserProfileImageRequest

java.lang.Object
com.iizix.server.user.UserProfileImageRequest
All Implemented Interfaces:
IUserProfileImageRequest, Cloneable

public class UserProfileImageRequest extends 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 Details

    • COMMON_DPRS_EMPTY

      public static final double[] COMMON_DPRS_EMPTY
      COMMON_DPRS_EMPTY: An empty double array used to create images with DPR's of the common values: 1.0d, 1.5d, 2.0d, 3.0d, 4.0d.
  • Method Details

    • clone

      public UserProfileImageRequest clone()
      Clones the instance.
      Specified by:
      clone in interface IUserProfileImageRequest
      Overrides:
      clone in class 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 interface IUserProfileImageRequest
      Returns:
      The UserProfileImageRequest "this" instance.
      Throws:
      NotFoundException - If current clientGyro 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 interface IUserProfileImageRequest
      Returns:
      The UserProfileImageRequest "this" instance.
      Throws:
      NotFoundException - If appGyro 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 interface IUserProfileImageRequest
      Parameters:
      appGyro - The application session gyro to use.
      Returns:
      The UserProfileImageRequest "this" instance.
      Throws:
      NullPointerException - If appGyro is null.
    • 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 the clientGyro will enable the DPR's to be read for the current client session.
      Specified by:
      clientSessionGyro in interface IUserProfileImageRequest
      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 to null.

      Specified by:
      user in interface IUserProfileImageRequest
      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.
      IllegalArgumentException - If the user ID is invalid (zero or negative value).
    • user

      public UserProfileImageRequest user(String userName)
      Specifies the user name.
      Specified by:
      user in interface IUserProfileImageRequest
      Parameters:
      userName - The user name.
      Throws:
      NotFoundException - If the user name is not found.
      NullPointerException - If userName is null.
    • size

      public UserProfileImageRequest size(int size)
      Specifies the size of the image.
      Specified by:
      size in interface IUserProfileImageRequest
      Parameters:
      size - The size of width in logical pixels in the range of 16 to 400.
      Returns:
      The UserProfileImageRequest "this" instance.
      Throws:
      IllegalArgumentException - If size 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 interface IUserProfileImageRequest
      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:
      IllegalArgumentException - If width or height is not in the range of 16 to 400.
    • quality

      public UserProfileImageRequest quality(int quality)
      Sets the image quality.
      Specified by:
      quality in interface IUserProfileImageRequest
      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:
      IllegalArgumentException - If quality is not in the range of 0 to 100.
    • circle

      public UserProfileImageRequest circle()
      Specifies that a circle should be used, if the width and height are equal, otherwise it will become an ellipse.
      Specified by:
      circle in interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      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:
      IllegalArgumentException - If size 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 the height.

      Specified by:
      corners in interface IUserProfileImageRequest
      Returns:
      The UserProfileImageRequest "this" instance.
    • DRPs

      public UserProfileImageRequest DRPs(double[] dprs)
      Sets the DRP's to use.
      Specified by:
      DRPs in interface IUserProfileImageRequest
      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 to null if the array should be build from the Client Session (must be non-null}, otherwise the single DPR 1.0d will be used.
      Throws:
      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 interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      Returns:
      The App Session Gyro, or null if not set.
    • getClientSessionGyro

      public ClientSessionGyro getClientSessionGyro()
      Gets the client session gyro.
      Specified by:
      getClientSessionGyro in interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      Returns:
      The user ID that has been set, or -1L if the session is still unauthenticated or not yet set, or zero if an undefined user "_undef_" is signed in.
    • getUserName

      public String getUserName()
      Gets the user name.
      Specified by:
      getUserName in interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      Returns:
      The corner logical pixel value, zero for square corners (or rectangular, i.e. not rounded), -1 for circle or oval (in case of different width and height).

      A value of zero indicates rectangular corners, i.e. no rounding.

      A negative value will use the corners of half the width and half the height.

    • isCircle

      public boolean isCircle()
      Checks if it's a circle or oval (in case of different width and height)
      Specified by:
      isCircle in interface IUserProfileImageRequest
      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 interface IUserProfileImageRequest
      Returns:
      The create default flag, false by default.
    • getDPRs

      public double[] getDPRs()
      Gets the DPR's requested.
      Specified by:
      getDPRs in interface IUserProfileImageRequest
      Returns:
      A cloned array of the requested DPR's.