class KToolTip extends ColorToolTip
{
    private static final Logger LOG = LogManager.getLogger(KToolTip.class);

    /**
     * Constructor.
     * @param rowText String instance.
     */
    KToolTip(String rowText)
    {
        createMarkUp(rowText);
    }

    private void createMarkUp(String rowText)
    {
        float[] colorValues = extractColorValues(rowText);
        if (colorValues != null)
        {
            try
            {
                float[] rgbValues = getICCColorSpace().toRGB(colorValues);
                setToolTipText(getMarkUp(colorHexValue(new Color(rgbValues[0], rgbValues[1], rgbValues[2]))));
            }
            catch (IOException e)
            {
                LOG.error(e.getMessage(), e);
            }
        }
    }

    ICC_ColorSpace getICCColorSpace() throws IOException
    {
        // loads the ICC color profile for CMYK
        ICC_Profile iccProfile = getICCProfile();
        if (iccProfile == null)
        {
            throw new IOException("Default CMYK color profile could not be loaded");
        }

        return new ICC_ColorSpace(iccProfile);
    }

    ICC_Profile getICCProfile() throws IOException
    {<FILL_FUNCTION_BODY>}
}

        // Adobe Acrobat uses "U.S. Web Coated (SWOP) v2" as the default
        // CMYK profile, however it is not available under an open license.
        // Instead, the "ISO Coated v2 300% (basICColor)" is used, which
        // is an open alternative to the "ISO Coated v2 300% (ECI)" profile.

        String name = "/org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc";

        URL url = PDDeviceCMYK.class.getResource(name);
        if (url == null)
        {
            throw new IOException("Error loading resource: " + name);
        }

        try (InputStream input = url.openStream())
        {
            return ICC_Profile.getInstance(input);
        }
    
<methods>public java.lang.String getToolTipText() ,public void setToolTipText(java.lang.String) <variables>private java.lang.String toolTipText