Class UIDefaultsLoader


  • class UIDefaultsLoader
    extends java.lang.Object
    Load UI defaults from properties files associated to Flat LaF classes and add to UI defaults. Each class that extend the LaF class may have its own .properties file in the same package as the class. Properties from superclasses are loaded first to give subclasses a chance to override defaults. E.g. if running FlatDarkLaf, then the FlatLaf.properties is loaded first and FlatDarkLaf.properties loaded second.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  UIDefaultsLoader.ValueType  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.lang.Class<?> findClass​(java.lang.String className, java.util.List<java.lang.ClassLoader> addonClassLoaders)  
      private static javax.swing.plaf.ColorUIResource getSystemColor​(java.lang.String name)  
      private static java.lang.Object invokeConstructorOrStaticMethod​(java.lang.reflect.Executable[] constructorsOrMethods, java.util.List<java.lang.String> parts, java.util.function.Function<java.lang.String,​java.lang.String> resolver)  
      (package private) static java.lang.Object lazyUIManagerGet​(java.lang.String uiKey)
      For use in LazyValue to get value for given key from UIManager and report error if not found.
      (package private) static void loadDefaultsFromProperties​(java.lang.Class<?> lookAndFeelClass, java.util.List<FlatDefaultsAddon> addons, java.util.Properties additionalDefaults, boolean dark, javax.swing.UIDefaults defaults)  
      (package private) static void loadDefaultsFromProperties​(java.util.List<java.lang.Class<?>> lafClasses, java.util.List<FlatDefaultsAddon> addons, java.util.Properties additionalDefaults, boolean dark, javax.swing.UIDefaults defaults)  
      (package private) static void logParseError​(java.lang.String key, java.lang.String value, java.lang.RuntimeException ex, boolean severe)  
      private static java.lang.IllegalArgumentException newInvalidColorException​(java.lang.String value)  
      private static java.lang.IllegalArgumentException newMissingParametersException​(java.lang.String value)  
      private static java.lang.Boolean parseBoolean​(java.lang.String value)  
      private static java.lang.Object parseBorder​(java.lang.String value, java.util.function.Function<java.lang.String,​java.lang.String> resolver, java.util.List<java.lang.ClassLoader> addonClassLoaders)  
      private static java.lang.Character parseCharacter​(java.lang.String value)  
      private static java.lang.Object parseClass​(java.lang.String value, java.util.List<java.lang.ClassLoader> addonClassLoaders)  
      (package private) static javax.swing.plaf.ColorUIResource parseColor​(java.lang.String value)
      Parses a hex color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format and returns it as color object.
      private static java.lang.Object parseColorChange​(int hslIndex, java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: changeHue(color,value[,options]) or changeSaturation(color,value[,options]) or changeLightness(color,value[,options]) or changeAlpha(color,value[,options]) - color: a color (e.g.
      private static java.lang.Object parseColorContrast​(java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: contrast(color,dark,light[,threshold]) - color: a color to compare against - dark: a designated dark color (e.g.
      private static java.lang.Object parseColorFade​(java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: fade(color,amount[,options]) - color: a color (e.g.
      private static java.lang.Object parseColorFunctions​(java.lang.String value, java.util.function.Function<java.lang.String,​java.lang.String> resolver)  
      private static java.lang.Object parseColorHSLIncreaseDecrease​(int hslIndex, boolean increase, java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: lighten(color,amount[,options]) or darken(color,amount[,options]) or saturate(color,amount[,options]) or desaturate(color,amount[,options]) or fadein(color,amount[,options]) or fadeout(color,amount[,options]) - color: a color (e.g.
      private static javax.swing.plaf.ColorUIResource parseColorHslOrHsla​(boolean hasAlpha, java.util.List<java.lang.String> params)
      Syntax: hsl(hue,saturation,lightness) or hsla(hue,saturation,lightness,alpha) - hue: an integer 0-360 representing degrees - saturation: a percentage 0-100% - lightness: a percentage 0-100% - alpha: a percentage 0-100%
      private static java.lang.Object parseColorIf​(java.lang.String value, java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: if(condition,trueValue,falseValue)
      private static java.lang.Object parseColorMix​(java.lang.String color1Str, java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: mix(color1,color2[,weight]) or tint(color[,weight]) or shade(color[,weight]) - color1: a color (e.g.
      private static java.lang.Object parseColorOrFunction​(java.lang.String value, java.util.function.Function<java.lang.String,​java.lang.String> resolver)  
      private static javax.swing.plaf.ColorUIResource parseColorOver​(java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: over(foreground,background) - foreground: a foreground color (e.g.
      (package private) static int parseColorRGBA​(java.lang.String value)
      Parses a hex color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format and returns it as rgba integer suitable for Color, which includes alpha component in bits 24-31.
      private static javax.swing.plaf.ColorUIResource parseColorRgbOrRgba​(boolean hasAlpha, java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: rgb(red,green,blue) or rgba(red,green,blue,alpha) - red: an integer 0-255 or a percentage 0-100% - green: an integer 0-255 or a percentage 0-100% - blue: an integer 0-255 or a percentage 0-100% - alpha: an integer 0-255 or a percentage 0-100%
      private static java.lang.Object parseColorSpin​(java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: spin(color,angle[,options]) - color: a color (e.g.
      private static java.lang.Object parseColorSystemColor​(java.lang.String value, java.util.List<java.lang.String> params, java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      Syntax: systemColor(name[,defaultValue]) - name: system color name - defaultValue: default color value used if system color is not available
      private static boolean parseCondition​(java.lang.String condition, java.util.function.Function<java.lang.String,​java.lang.String> resolver, java.util.List<java.lang.ClassLoader> addonClassLoaders)  
      private static java.awt.Dimension parseDimension​(java.lang.String value)  
      private static java.lang.Float parseFloat​(java.lang.String value)  
      private static java.lang.Object parseFont​(java.lang.String value)
      Syntax: [normal] [bold|+bold|-bold] [italic|+italic|-italic] [|+|-|%] [family[, family]] [$baseFontKey]
      private static java.lang.Object parseFunctionBaseColor​(java.lang.String colorStr, ColorFunctions.ColorFunction function, boolean derived, java.util.function.Function<java.lang.String,​java.lang.String> resolver)  
      private static java.lang.Object parseGrayFilter​(java.lang.String value)  
      private static java.awt.Insets parseInsets​(java.lang.String value)  
      private static java.lang.Object parseInstance​(java.lang.String value, java.util.function.Function<java.lang.String,​java.lang.String> resolver, java.util.List<java.lang.ClassLoader> addonClassLoaders)  
      private static java.lang.Integer parseInteger​(java.lang.String value)  
      private static java.lang.Integer parseInteger​(java.lang.String value, int min, int max, boolean allowPercentage)  
      private static java.lang.Number parseIntegerOrFloat​(java.lang.String value)  
      private static java.lang.Object[] parseMethodParams​(java.lang.Class<?>[] paramTypes, java.util.List<java.lang.String> parts, java.util.function.Function<java.lang.String,​java.lang.String> resolver)  
      private static int parsePercentage​(java.lang.String value)  
      private static javax.swing.UIDefaults.ActiveValue parseScaledDimension​(java.lang.String value)  
      private static javax.swing.UIDefaults.ActiveValue parseScaledFloat​(java.lang.String value)  
      private static javax.swing.UIDefaults.ActiveValue parseScaledInsets​(java.lang.String value)  
      private static javax.swing.UIDefaults.ActiveValue parseScaledInteger​(java.lang.String value)  
      (package private) static java.lang.Object parseValue​(java.lang.String key, java.lang.String value, java.lang.Class<?> valueType)  
      (package private) static java.lang.Object parseValue​(java.lang.String key, java.lang.String value, java.lang.Class<?> javaValueType, UIDefaultsLoader.ValueType[] resultValueType, java.util.function.Function<java.lang.String,​java.lang.String> resolver, java.util.List<java.lang.ClassLoader> addonClassLoaders)  
      (package private) static java.lang.String resolveValue​(java.lang.String value, java.util.function.Function<java.lang.String,​java.lang.String> propertiesGetter)  
      (package private) static java.lang.String resolveValueFromUIManager​(java.lang.String value)  
      (package private) static java.lang.String simpleClassName​(java.lang.Class<?> cls)
      Similar to Class.getSimpleName(), but includes enclosing class for nested classes.
      private static java.util.List<java.lang.String> splitFunctionParams​(java.lang.String str, char delim)
      Splits function parameters and allows using functions as parameters.
      • Methods inherited from class java.lang.Object

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

      • parseColorDepth

        private static int parseColorDepth
      • systemColorCache

        private static java.util.Map<java.lang.String,​javax.swing.plaf.ColorUIResource> systemColorCache
      • fontCache

        private static final SoftCache<java.lang.String,​java.lang.Object> fontCache
    • Constructor Detail

      • UIDefaultsLoader

        UIDefaultsLoader()
    • Method Detail

      • loadDefaultsFromProperties

        static void loadDefaultsFromProperties​(java.lang.Class<?> lookAndFeelClass,
                                               java.util.List<FlatDefaultsAddon> addons,
                                               java.util.Properties additionalDefaults,
                                               boolean dark,
                                               javax.swing.UIDefaults defaults)
      • loadDefaultsFromProperties

        static void loadDefaultsFromProperties​(java.util.List<java.lang.Class<?>> lafClasses,
                                               java.util.List<FlatDefaultsAddon> addons,
                                               java.util.Properties additionalDefaults,
                                               boolean dark,
                                               javax.swing.UIDefaults defaults)
      • simpleClassName

        static java.lang.String simpleClassName​(java.lang.Class<?> cls)
        Similar to Class.getSimpleName(), but includes enclosing class for nested classes.
      • logParseError

        static void logParseError​(java.lang.String key,
                                  java.lang.String value,
                                  java.lang.RuntimeException ex,
                                  boolean severe)
      • resolveValue

        static java.lang.String resolveValue​(java.lang.String value,
                                             java.util.function.Function<java.lang.String,​java.lang.String> propertiesGetter)
                                      throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • resolveValueFromUIManager

        static java.lang.String resolveValueFromUIManager​(java.lang.String value)
                                                   throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseValue

        static java.lang.Object parseValue​(java.lang.String key,
                                           java.lang.String value,
                                           java.lang.Class<?> valueType)
                                    throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseValue

        static java.lang.Object parseValue​(java.lang.String key,
                                           java.lang.String value,
                                           java.lang.Class<?> javaValueType,
                                           UIDefaultsLoader.ValueType[] resultValueType,
                                           java.util.function.Function<java.lang.String,​java.lang.String> resolver,
                                           java.util.List<java.lang.ClassLoader> addonClassLoaders)
                                    throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseCondition

        private static boolean parseCondition​(java.lang.String condition,
                                              java.util.function.Function<java.lang.String,​java.lang.String> resolver,
                                              java.util.List<java.lang.ClassLoader> addonClassLoaders)
      • parseBorder

        private static java.lang.Object parseBorder​(java.lang.String value,
                                                    java.util.function.Function<java.lang.String,​java.lang.String> resolver,
                                                    java.util.List<java.lang.ClassLoader> addonClassLoaders)
                                             throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseInstance

        private static java.lang.Object parseInstance​(java.lang.String value,
                                                      java.util.function.Function<java.lang.String,​java.lang.String> resolver,
                                                      java.util.List<java.lang.ClassLoader> addonClassLoaders)
      • parseClass

        private static java.lang.Object parseClass​(java.lang.String value,
                                                   java.util.List<java.lang.ClassLoader> addonClassLoaders)
      • findClass

        private static java.lang.Class<?> findClass​(java.lang.String className,
                                                    java.util.List<java.lang.ClassLoader> addonClassLoaders)
                                             throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • parseInsets

        private static java.awt.Insets parseInsets​(java.lang.String value)
                                            throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseDimension

        private static java.awt.Dimension parseDimension​(java.lang.String value)
                                                  throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseColorOrFunction

        private static java.lang.Object parseColorOrFunction​(java.lang.String value,
                                                             java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                      throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseColor

        static javax.swing.plaf.ColorUIResource parseColor​(java.lang.String value)
                                                    throws java.lang.IllegalArgumentException
        Parses a hex color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format and returns it as color object.
        Throws:
        java.lang.IllegalArgumentException
      • parseColorRGBA

        static int parseColorRGBA​(java.lang.String value)
                           throws java.lang.IllegalArgumentException
        Parses a hex color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format and returns it as rgba integer suitable for Color, which includes alpha component in bits 24-31.
        Throws:
        java.lang.IllegalArgumentException
      • newInvalidColorException

        private static java.lang.IllegalArgumentException newInvalidColorException​(java.lang.String value)
      • parseColorFunctions

        private static java.lang.Object parseColorFunctions​(java.lang.String value,
                                                            java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                     throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseColorIf

        private static java.lang.Object parseColorIf​(java.lang.String value,
                                                     java.util.List<java.lang.String> params,
                                                     java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                              throws java.lang.IllegalArgumentException
        Syntax: if(condition,trueValue,falseValue)

        This "if" function is only used if the "if" is passed as parameter to another color function. Otherwise, the general "if" function is used.

        Throws:
        java.lang.IllegalArgumentException
      • parseColorSystemColor

        private static java.lang.Object parseColorSystemColor​(java.lang.String value,
                                                              java.util.List<java.lang.String> params,
                                                              java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                       throws java.lang.IllegalArgumentException
        Syntax: systemColor(name[,defaultValue]) - name: system color name - defaultValue: default color value used if system color is not available
        Throws:
        java.lang.IllegalArgumentException
      • getSystemColor

        private static javax.swing.plaf.ColorUIResource getSystemColor​(java.lang.String name)
      • parseColorRgbOrRgba

        private static javax.swing.plaf.ColorUIResource parseColorRgbOrRgba​(boolean hasAlpha,
                                                                            java.util.List<java.lang.String> params,
                                                                            java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                                     throws java.lang.IllegalArgumentException
        Syntax: rgb(red,green,blue) or rgba(red,green,blue,alpha) - red: an integer 0-255 or a percentage 0-100% - green: an integer 0-255 or a percentage 0-100% - blue: an integer 0-255 or a percentage 0-100% - alpha: an integer 0-255 or a percentage 0-100%
        Throws:
        java.lang.IllegalArgumentException
      • parseColorHslOrHsla

        private static javax.swing.plaf.ColorUIResource parseColorHslOrHsla​(boolean hasAlpha,
                                                                            java.util.List<java.lang.String> params)
                                                                     throws java.lang.IllegalArgumentException
        Syntax: hsl(hue,saturation,lightness) or hsla(hue,saturation,lightness,alpha) - hue: an integer 0-360 representing degrees - saturation: a percentage 0-100% - lightness: a percentage 0-100% - alpha: a percentage 0-100%
        Throws:
        java.lang.IllegalArgumentException
      • parseColorHSLIncreaseDecrease

        private static java.lang.Object parseColorHSLIncreaseDecrease​(int hslIndex,
                                                                      boolean increase,
                                                                      java.util.List<java.lang.String> params,
                                                                      java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                               throws java.lang.IllegalArgumentException
        Syntax: lighten(color,amount[,options]) or darken(color,amount[,options]) or saturate(color,amount[,options]) or desaturate(color,amount[,options]) or fadein(color,amount[,options]) or fadeout(color,amount[,options]) - color: a color (e.g. #f00) or a color function - amount: percentage 0-100% - options: [relative] [autoInverse] [noAutoInverse] [lazy] [derived]
        Throws:
        java.lang.IllegalArgumentException
      • parseColorFade

        private static java.lang.Object parseColorFade​(java.util.List<java.lang.String> params,
                                                       java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                throws java.lang.IllegalArgumentException
        Syntax: fade(color,amount[,options]) - color: a color (e.g. #f00) or a color function - amount: percentage 0-100% - options: [derived] [lazy]
        Throws:
        java.lang.IllegalArgumentException
      • parseColorSpin

        private static java.lang.Object parseColorSpin​(java.util.List<java.lang.String> params,
                                                       java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                throws java.lang.IllegalArgumentException
        Syntax: spin(color,angle[,options]) - color: a color (e.g. #f00) or a color function - angle: number of degrees to rotate - options: [derived]
        Throws:
        java.lang.IllegalArgumentException
      • parseColorChange

        private static java.lang.Object parseColorChange​(int hslIndex,
                                                         java.util.List<java.lang.String> params,
                                                         java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                  throws java.lang.IllegalArgumentException
        Syntax: changeHue(color,value[,options]) or changeSaturation(color,value[,options]) or changeLightness(color,value[,options]) or changeAlpha(color,value[,options]) - color: a color (e.g. #f00) or a color function - value: for hue: number of degrees; otherwise: percentage 0-100% - options: [derived]
        Throws:
        java.lang.IllegalArgumentException
      • parseColorMix

        private static java.lang.Object parseColorMix​(java.lang.String color1Str,
                                                      java.util.List<java.lang.String> params,
                                                      java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                               throws java.lang.IllegalArgumentException
        Syntax: mix(color1,color2[,weight]) or tint(color[,weight]) or shade(color[,weight]) - color1: a color (e.g. #f00) or a color function - color2: a color (e.g. #f00) or a color function - weight: the weight (in range 0-100%) to mix the two colors larger weight uses more of first color, smaller weight more of second color
        Throws:
        java.lang.IllegalArgumentException
      • parseColorContrast

        private static java.lang.Object parseColorContrast​(java.util.List<java.lang.String> params,
                                                           java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                    throws java.lang.IllegalArgumentException
        Syntax: contrast(color,dark,light[,threshold]) - color: a color to compare against - dark: a designated dark color (e.g. #000) or a color function - light: a designated light color (e.g. #fff) or a color function - threshold: the threshold (in range 0-100%) to specify where the transition from "dark" to "light" is (default is 43%)
        Throws:
        java.lang.IllegalArgumentException
      • parseColorOver

        private static javax.swing.plaf.ColorUIResource parseColorOver​(java.util.List<java.lang.String> params,
                                                                       java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                                throws java.lang.IllegalArgumentException
        Syntax: over(foreground,background) - foreground: a foreground color (e.g. #f00) or a color function; the alpha of this color is used as weight to mix the two colors - background: a background color (e.g. #f00) or a color function
        Throws:
        java.lang.IllegalArgumentException
      • parseFunctionBaseColor

        private static java.lang.Object parseFunctionBaseColor​(java.lang.String colorStr,
                                                               ColorFunctions.ColorFunction function,
                                                               boolean derived,
                                                               java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                        throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseFont

        private static java.lang.Object parseFont​(java.lang.String value)
                                           throws java.lang.IllegalArgumentException
        Syntax: [normal] [bold|+bold|-bold] [italic|+italic|-italic] [|+|-|%] [family[, family]] [$baseFontKey]
        Throws:
        java.lang.IllegalArgumentException
      • parsePercentage

        private static int parsePercentage​(java.lang.String value)
                                    throws java.lang.IllegalArgumentException,
                                           java.lang.NumberFormatException
        Throws:
        java.lang.IllegalArgumentException
        java.lang.NumberFormatException
      • parseBoolean

        private static java.lang.Boolean parseBoolean​(java.lang.String value)
                                               throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseCharacter

        private static java.lang.Character parseCharacter​(java.lang.String value)
                                                   throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseInteger

        private static java.lang.Integer parseInteger​(java.lang.String value,
                                                      int min,
                                                      int max,
                                                      boolean allowPercentage)
                                               throws java.lang.IllegalArgumentException,
                                                      java.lang.NumberFormatException
        Throws:
        java.lang.IllegalArgumentException
        java.lang.NumberFormatException
      • parseInteger

        private static java.lang.Integer parseInteger​(java.lang.String value)
                                               throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseIntegerOrFloat

        private static java.lang.Number parseIntegerOrFloat​(java.lang.String value)
                                                     throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseFloat

        private static java.lang.Float parseFloat​(java.lang.String value)
                                           throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseScaledInteger

        private static javax.swing.UIDefaults.ActiveValue parseScaledInteger​(java.lang.String value)
                                                                      throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseScaledFloat

        private static javax.swing.UIDefaults.ActiveValue parseScaledFloat​(java.lang.String value)
                                                                    throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseScaledInsets

        private static javax.swing.UIDefaults.ActiveValue parseScaledInsets​(java.lang.String value)
                                                                     throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseScaledDimension

        private static javax.swing.UIDefaults.ActiveValue parseScaledDimension​(java.lang.String value)
                                                                        throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • parseGrayFilter

        private static java.lang.Object parseGrayFilter​(java.lang.String value)
                                                 throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • splitFunctionParams

        private static java.util.List<java.lang.String> splitFunctionParams​(java.lang.String str,
                                                                            char delim)
        Splits function parameters and allows using functions as parameters. In other words: Delimiters surrounded by '(' and ')' are ignored.
      • invokeConstructorOrStaticMethod

        private static java.lang.Object invokeConstructorOrStaticMethod​(java.lang.reflect.Executable[] constructorsOrMethods,
                                                                        java.util.List<java.lang.String> parts,
                                                                        java.util.function.Function<java.lang.String,​java.lang.String> resolver)
                                                                 throws java.lang.Exception
        Throws:
        java.lang.Exception
      • parseMethodParams

        private static java.lang.Object[] parseMethodParams​(java.lang.Class<?>[] paramTypes,
                                                            java.util.List<java.lang.String> parts,
                                                            java.util.function.Function<java.lang.String,​java.lang.String> resolver)
      • lazyUIManagerGet

        static java.lang.Object lazyUIManagerGet​(java.lang.String uiKey)
        For use in LazyValue to get value for given key from UIManager and report error if not found. If key is prefixed by '?', then no error is reported.
      • newMissingParametersException

        private static java.lang.IllegalArgumentException newMissingParametersException​(java.lang.String value)