Class 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 Detail

      • 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 Detail

      • 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:
        java.lang.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.
        java.lang.IllegalArgumentException - If the user ID is invalid (zero or negative value).
      • 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:
        java.lang.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:
        java.lang.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:
        java.lang.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:
        java.lang.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:
        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 interface IUserProfileImageRequest
        Parameters:
        doCreateDefault - The create default flag, false by default.
        Returns:
        The UserProfileImageRequest "this" instance.
      • 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 "@undefined" is signed in.
      • getUserName

        public java.lang.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.