Class ColorWithAlternatives
- java.lang.Object
-
- java.awt.Color
-
- org.apache.xmlgraphics.java2d.color.ColorWithAlternatives
-
- All Implemented Interfaces:
java.awt.Paint
,java.awt.Transparency
,java.io.Serializable
public class ColorWithAlternatives extends java.awt.Color
ExtendedColor
class allowing to specify a prioritized list of alternative colors. The alternative colors shall be the ones that are preferred if an output format supports them. This is normally used for passing device-specific colors through to the output format.This class only adds a single reference to a color array which should not increase memory consumption by much if no alternative colors are specified.
Important: Due to a flaw in
Color.equals(Object)
, theequals()
method should not be used to compare two colors, especially when used to update the current color for some output format.Color
only takes the sRGB values into account but not more the advanced facets of this class. UseColorUtil.isSameColor(Color, Color)
for such a check.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.Color[]
alternativeColors
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description ColorWithAlternatives(float r, float g, float b, float a, java.awt.Color[] alternativeColors)
Constructor for RGBA colors.ColorWithAlternatives(float r, float g, float b, java.awt.Color[] alternativeColors)
Constructor for RGB colors.ColorWithAlternatives(int rgba, boolean hasalpha, java.awt.Color[] alternativeColors)
Constructor for RGBA colors.ColorWithAlternatives(int r, int g, int b, int a, java.awt.Color[] alternativeColors)
Constructor for RGBA colors.ColorWithAlternatives(int r, int g, int b, java.awt.Color[] alternativeColors)
Constructor for RGB colors.ColorWithAlternatives(int rgb, java.awt.Color[] alternativeColors)
Constructor for RGB colors.ColorWithAlternatives(java.awt.color.ColorSpace cspace, float[] components, float alpha, java.awt.Color[] alternativeColors)
Constructor for colors with an arbitrary color space.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.Color[]
getAlternativeColors()
Returns the list of alternative colors.java.awt.Color
getFirstAlternativeOfType(int colorSpaceType)
Returns the first alternative color found with the given color space type.boolean
hasAlternativeColors()
Indicates whether alternative colors are available.int
hashCode()
boolean
hasSameAlternativeColors(ColorWithAlternatives col)
Indicates whether another instance has the same alternative colors.private void
initAlternativeColors(java.awt.Color[] colors)
-
Methods inherited from class java.awt.Color
brighter, createContext, darker, decode, equals, getAlpha, getBlue, getColor, getColor, getColor, getColorComponents, getColorComponents, getColorSpace, getComponents, getComponents, getGreen, getHSBColor, getRed, getRGB, getRGBColorComponents, getRGBComponents, getTransparency, HSBtoRGB, RGBtoHSB, toString
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
alternativeColors
private java.awt.Color[] alternativeColors
-
-
Constructor Detail
-
ColorWithAlternatives
public ColorWithAlternatives(float r, float g, float b, float a, java.awt.Color[] alternativeColors)
Constructor for RGBA colors.- Parameters:
r
- the red componentg
- the green componentb
- the blue componenta
- the alpha componentalternativeColors
- the prioritized list of alternative colors.- See Also:
Color(float, float, float, float)
-
ColorWithAlternatives
public ColorWithAlternatives(float r, float g, float b, java.awt.Color[] alternativeColors)
Constructor for RGB colors.- Parameters:
r
- the red componentg
- the green componentb
- the blue componentalternativeColors
- the prioritized list of alternative colors.- See Also:
Color(float, float, float)
-
ColorWithAlternatives
public ColorWithAlternatives(int rgba, boolean hasalpha, java.awt.Color[] alternativeColors)
Constructor for RGBA colors.- Parameters:
rgba
- the combined RGBA valuehasalpha
- true if the alpha bits are valid, false otherwisealternativeColors
- the prioritized list of alternative colors.- See Also:
Color(int, boolean)
-
ColorWithAlternatives
public ColorWithAlternatives(int r, int g, int b, int a, java.awt.Color[] alternativeColors)
Constructor for RGBA colors.- Parameters:
r
- the red componentg
- the green componentb
- the blue componenta
- the alpha componentalternativeColors
- the prioritized list of alternative colors.- See Also:
Color(int, int, int, int)
-
ColorWithAlternatives
public ColorWithAlternatives(int r, int g, int b, java.awt.Color[] alternativeColors)
Constructor for RGB colors.- Parameters:
r
- the red componentg
- the green componentb
- the blue componentalternativeColors
- the prioritized list of alternative colors.- See Also:
Color(int, int, int)
-
ColorWithAlternatives
public ColorWithAlternatives(int rgb, java.awt.Color[] alternativeColors)
Constructor for RGB colors.- Parameters:
rgb
- the combined RGB componentsalternativeColors
- the prioritized list of alternative colors.- See Also:
Color(int)
-
ColorWithAlternatives
public ColorWithAlternatives(java.awt.color.ColorSpace cspace, float[] components, float alpha, java.awt.Color[] alternativeColors)
Constructor for colors with an arbitrary color space.- Parameters:
cspace
- the color spacecomponents
- the color componentsalpha
- the alpha componentalternativeColors
- the prioritized list of alternative colors.- See Also:
Color(ColorSpace, float[], float)
-
-
Method Detail
-
initAlternativeColors
private void initAlternativeColors(java.awt.Color[] colors)
-
getAlternativeColors
public java.awt.Color[] getAlternativeColors()
Returns the list of alternative colors. An empty array will be returned if no alternative colors are available.- Returns:
- the list of alternative colors
-
hasAlternativeColors
public boolean hasAlternativeColors()
Indicates whether alternative colors are available.- Returns:
- true if alternative colors are available.
-
hasSameAlternativeColors
public boolean hasSameAlternativeColors(ColorWithAlternatives col)
Indicates whether another instance has the same alternative colors.- Parameters:
col
- the color to compare the alternatives to- Returns:
- true if the same alternative colors are present
-
getFirstAlternativeOfType
public java.awt.Color getFirstAlternativeOfType(int colorSpaceType)
Returns the first alternative color found with the given color space type.- Parameters:
colorSpaceType
- the color space type (ColorSpace
.TYPE_*).- Returns:
- the requested alternative color or null, if no match was found
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.awt.Color
-
-