Class WebThumbs


  • public class WebThumbs
    extends java.lang.Object
    Class holding all web thumbnails together and requesting only the ones needed.
    Author:
    Christopher Mindus
    • Field Summary

      Fields 
      Modifier and TypeFieldDescription
      static booleanDEBUG
      The debug flag.
    • Constructor Summary

      Constructors 
      ConstructorDescription
      WebThumbs​(ServerShell server)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static java.lang.StringfileNameToSite​(java.lang.String fileName)
      Converts a file name into a potential web site name.
      WSFileProvidergetFileProvider()
      Gets the file provider for thumbnails that are persistent.
      WebThumbnailrequestWebThumbnail​(java.lang.String site)
      Requests a new thumbnail for a site.
      static java.lang.StringsiteToFileName​(java.lang.String site)
      Gets the file name to use in the file provider for a web site thumbnail.
      static java.lang.StringsiteToFileName​(java.lang.String site, int width, int height, int quality)
      Gets the file name to use in the file provider for a web site thumbnail.
      static java.lang.StringstringToSite​(java.lang.String site)
      Converts an URL or email to a potential web site.
      static java.lang.StringurlToSite​(InternetAddress address)
      Converts an email address into a potential web site name.
      static java.lang.StringurlToSite​(java.net.URL url)
      Converts a URL into a potential web site name.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WebThumbs

        public WebThumbs​(ServerShell server)
                  throws java.io.IOException
        Constructor. This constructor should NOT be called directly, it is handled from the Server itself.
        Parameters:
        server - The server instance.
        Throws:
        java.io.IOException - If the COMMON_PERSISTENT file provider could not
        java.lang.IllegalStateException - If constructor is called outside of the server itself.
    • Method Detail

      • siteToFileName

        public static java.lang.String siteToFileName​(java.lang.String site,
                                                      int width,
                                                      int height,
                                                      int quality)
        Gets the file name to use in the file provider for a web site thumbnail.
        Parameters:
        site - The web site name, e.g. "oracle.com" or "www.oracle.com".
        width - The requested width of the image, range 10-1000.
        height - The requested height of the image, range 10-1000.
        quality - The quality of the image (0=pixel-perfect as PNG, otherwise 1-100 for JPG quality).
        Returns:
        File file name to use as below. File name ends with ".jpg" when quality is 1-100, or ".png" when quality is zero (loss-less). "website-"+site.toLowerCase()+"-thumbnail-"+width+'x'+height+".jpg".
        Throws:
        java.lang.IllegalArgumentException - If width is not in range of 10-1000, height is not in range of 10-1000, or quality is not in range of 0-100.
      • siteToFileName

        public static java.lang.String siteToFileName​(java.lang.String site)
        Gets the file name to use in the file provider for a web site thumbnail.
        Parameters:
        site - The web site name, e.g. "oracle.com" or "www.oracle.com".
        Returns:
        File file name to use as "website-"+site.toLowerCase()+"-thumbnail.png".
      • fileNameToSite

        public static java.lang.String fileNameToSite​(java.lang.String fileName)
        Converts a file name into a potential web site name.
        Parameters:
        fileName - The file name.
        Returns:
        The site name, or null is doesn't follow the rule "website-"+site.toLowerCase()+"-thumbnail.png".
      • urlToSite

        public static java.lang.String urlToSite​(java.net.URL url)
                                          throws java.net.MalformedURLException
        Converts a URL into a potential web site name.
        Parameters:
        url - The URL.
        Returns:
        The site name, or null it cannot be established properly. The protocol is not specified (http/https).
        Throws:
        java.net.MalformedURLException - If the address cannot be turned into a web site "URL".
      • urlToSite

        public static java.lang.String urlToSite​(InternetAddress address)
                                          throws java.net.MalformedURLException
        Converts an email address into a potential web site name.
        Parameters:
        address - The mail address.
        Returns:
        The site name, or null it cannot be established properly. The protocol is not specified (http/https).
        Throws:
        java.net.MalformedURLException - If the address cannot be turned into a web site "URL".
      • stringToSite

        public static java.lang.String stringToSite​(java.lang.String site)
                                             throws java.net.MalformedURLException
        Converts an URL or email to a potential web site.
        Parameters:
        site - The string as a potential site.
        Returns:
        The web site name, never null. The protocol is not specified (http/https).
        Throws:
        java.net.MalformedURLException
      • getFileProvider

        public WSFileProvider getFileProvider()
        Gets the file provider for thumbnails that are persistent.
        Returns:
        The file provider.
      • requestWebThumbnail

        public WebThumbnail requestWebThumbnail​(java.lang.String site)
                                         throws java.net.MalformedURLException,
                                                java.lang.IllegalStateException
        Requests a new thumbnail for a site. If already present, it will be returned directly, otherwise you might have to wait for it using the WebThumbnail.waitForCompletion(Runnable).
        Parameters:
        site - A URL string where the protocol will be stripped.
        Returns:
        The instance of a WebThumbnail.
        Throws:
        java.net.MalformedURLException - If the protocol in invalid.
        java.lang.IllegalStateException - If the WebThumbs instance is disposed of or was not initialized with a proper API key.