org.foray.fotree.value
Class DtColor

java.lang.Object
  extended by org.foray.fotree.value.Expr
      extended by org.foray.fotree.value.ExprAdditive
          extended by org.foray.fotree.value.ExprMultiplicative
              extended by org.foray.fotree.value.ExprUnary
                  extended by org.foray.fotree.value.ExprPrimary
                      extended by org.foray.fotree.value.Datatype
                          extended by org.foray.fotree.value.DtColor
All Implemented Interfaces:
PropertyValue

public final class DtColor
extends Datatype

A "color" property datatype in XSL-FO. See XSL-FO Std. 1.0, Sec. 5.11.

To prevent creation of multiple instances for the same underlying color, the constructor is private. To obtain an instance, use one of the following static methods instead: makeDtColor(String), makeDtColor(Color), or makeDtColor(float, float, float, float).


Field Summary
static Color COLOR_RGB_TRANSPARENT
          A standard transparent color.
static byte SRGB_ALPHA_COMPONENT
          Constant indicating the index to the Alpha component in the sRGB color space.
static byte SRGB_BLUE_COMPONENT
          Constant indicating the index to the Blue component in the sRGB color space.
static byte SRGB_COMPONENTS
          Constant indicating the number of components in the sRGB color space.
static byte SRGB_GREEN_COMPONENT
          Constant indicating the index to the Green component in the sRGB color space.
static byte SRGB_RED_COMPONENT
          Constant indicating the index to the Red component in the sRGB color space.
 
Fields inherited from class org.foray.fotree.value.Expr
OPERATION_ADD, OPERATION_DIVIDE, OPERATION_MOD, OPERATION_MULTIPLY, OPERATION_NEGATION, OPERATION_SUBTRACT, UNIT_POWER_AREA, UNIT_POWER_LENGTH, UNIT_POWER_NON_NUMERIC, UNIT_POWER_NUMERIC
 
Method Summary
 boolean canEvalColor()
          Indicates whether this property value has the ability to express itself as a Color.
 boolean canEvalInteger()
          Indicates whether this property value has the ability to express itself as an integer Numeric item.
 boolean canEvalKeyword()
          Indicates whether this property value can evaluate to a keyword.
 boolean canEvalLength()
          Indicates whether this expression can be evaluated to a unit power = 1 (length) or not.
 boolean canEvalNumeric()
          Indicates whether this property value has the ability to express itself as a Numeric item.
 boolean canEvalPercentage()
          Indicates whether this property value can evaluate to a percentage.
 Color evalColor()
          Returns the encapsulated Color.
 int evalInteger()
          Return this value as an int.
 PvKeyword evalKeyword()
          Returns the keyword value of this property value.
 int evalLength(int pointSize)
          Evaluates the expression to a unit power of 1 (length).
 double evalNumeric()
          Return the raw numeric value of "this", without regard to unit power.
 float evalPercentage()
          Returns the percentage value of this property value.
 byte getUnitPower()
          Each numeric has a "unit power".
 Color getValue()
          Returns the color value.
 boolean lengthRequiresFontSize()
          Indicates whether the computation of the length will require an accurate font-size parameter.
static DtColor makeDtColor(Color color)
          Factory method that creates or retrieves a DtColor instance for a given color.
static DtColor makeDtColor(float red, float green, float blue, float alpha)
          Factory method that creates or retrieves a DtColor instance for a set of color components.
static DtColor makeDtColor(String input)
          Factory method which converts a named color into a ColorDT instance.
static DtColor mapNameToColorRGB(String colorName)
          Returns a standard XSL-FO color from its name.
static DtColor mapSecondaryNameToColorRGB(String colorName)
          Returns a color from its name, including standard XSL-FO named colors and the additional ones supplied by FOray.
static DtColor parseColorDescription(String inputValue)
          Converts a String color description to a DtColor instance.
static float parseShortRGBColor(String colorString, int componentIndex, boolean longFormat)
          Parses a specific color value out of a String in the form of #RGB (short format), or #RRGGBB (long format), returning the color value in the range 0 thru 1.
 
Methods inherited from class org.foray.fotree.value.Datatype
convertValueToFoValue
 
Methods inherited from class org.foray.fotree.value.Expr
evalColorException, evalIntegerException, evalKeywordException, evalLengthException, evalNumericException, evalPercentageException
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COLOR_RGB_TRANSPARENT

public static final Color COLOR_RGB_TRANSPARENT
A standard transparent color.


SRGB_COMPONENTS

public static final byte SRGB_COMPONENTS
Constant indicating the number of components in the sRGB color space.


SRGB_RED_COMPONENT

public static final byte SRGB_RED_COMPONENT
Constant indicating the index to the Red component in the sRGB color space.

See Also:
Constant Field Values

SRGB_GREEN_COMPONENT

public static final byte SRGB_GREEN_COMPONENT
Constant indicating the index to the Green component in the sRGB color space.

See Also:
Constant Field Values

SRGB_BLUE_COMPONENT

public static final byte SRGB_BLUE_COMPONENT
Constant indicating the index to the Blue component in the sRGB color space.

See Also:
Constant Field Values

SRGB_ALPHA_COMPONENT

public static final byte SRGB_ALPHA_COMPONENT
Constant indicating the index to the Alpha component in the sRGB color space.

See Also:
Constant Field Values
Method Detail

getValue

public Color getValue()
Returns the color value.

Returns:
The color.

canEvalColor

public boolean canEvalColor()
Indicates whether this property value has the ability to express itself as a Color. Overrides the base class, because this function can evaluate to a color.

Returns:
True iff this property value is a color.

evalColor

public Color evalColor()
Returns the encapsulated Color.

Returns:
The encapsulated Color.

makeDtColor

public static DtColor makeDtColor(String input)
Factory method which converts a named color into a ColorDT instance.

Parameters:
input - The named color (for example, "blue" or "teal") to be converted.
Returns:
A ColorDT instance, or null if input is not a defined XSL-FO named color.

makeDtColor

public static DtColor makeDtColor(Color color)
Factory method that creates or retrieves a DtColor instance for a given color.

Parameters:
color - The color to wrap.
Returns:
The DtColor instance.

makeDtColor

public static DtColor makeDtColor(float red,
                                  float green,
                                  float blue,
                                  float alpha)
Factory method that creates or retrieves a DtColor instance for a set of color components.

Parameters:
red - The red value of the color to wrap (0 thru 1).
green - The green value of the color to wrap (0 thru 1).
blue - The blue value of the color to wrap (0 thru 1).
alpha - The alpha value of the color to wrap (0 thru 1).
Returns:
The DtColor instance.

mapNameToColorRGB

public static DtColor mapNameToColorRGB(String colorName)
Returns a standard XSL-FO color from its name.

Parameters:
colorName - The name of the color to be returned.
Returns:
The color instance or null if it is not found.

mapSecondaryNameToColorRGB

public static DtColor mapSecondaryNameToColorRGB(String colorName)
Returns a color from its name, including standard XSL-FO named colors and the additional ones supplied by FOray.

Parameters:
colorName - The name of the color to be returned.
Returns:
The color instance or null if it is not found.

parseColorDescription

public static DtColor parseColorDescription(String inputValue)
                                     throws PropertyException
Converts a String color description to a DtColor instance.

Parameters:
inputValue - The color description in one of the following formats: 1) a color name, 2) an #RGB description, or 3) an #RRGGBB description.
Returns:
The DtColor instance for the description.
Throws:
PropertyException - If the input value is not valid.

parseShortRGBColor

public static float parseShortRGBColor(String colorString,
                                       int componentIndex,
                                       boolean longFormat)
Parses a specific color value out of a String in the form of #RGB (short format), or #RRGGBB (long format), returning the color value in the range 0 thru 1.

Parameters:
colorString - The String containing the color descriptor, in the format #RGB (short format), or #RRGGBB (long format).
componentIndex - The index to the component to be parsed, one of SRGB_RED_COMPONENT, SRGB_GREEN_COMPONENT, or SRGB_BLUE_COMPONENT.
longFormat - Set to true if the input is in long format, false if it is in short format.
Returns:
The color value in the range 0 thru 1.

canEvalNumeric

public boolean canEvalNumeric()
Description copied from interface: PropertyValue
Indicates whether this property value has the ability to express itself as a Numeric item.

Returns:
True iff this property value is a numeric.

evalNumeric

public double evalNumeric()
Description copied from interface: PropertyValue
Return the raw numeric value of "this", without regard to unit power.

Returns:
A double representation of the value of "this". Type "double" is assumed to be the lowest-common-denominator of all numeric values.

canEvalLength

public boolean canEvalLength()
Description copied from interface: PropertyValue
Indicates whether this expression can be evaluated to a unit power = 1 (length) or not.

Returns:
True if the expression can be evaluated to a unit power of 1 (length).

getUnitPower

public byte getUnitPower()
Description copied from interface: PropertyValue
Each numeric has a "unit power". This number refers to the number of spatial dimensions in which the number operates. So, a number that has no relationship to space or refers to a point, has a length power of 0. A number that refers to length has a length power of 1 (1 dimension). Although there are none yet in XSL-FO, a number that referred to area (e.g. square inches) would, we suppose, have a length power of 2, and one referring to volume (e.g. cubic feet) would, we suppose have a length power of 3.

Returns:
The number of spatial dimensions in which this numeric item operates. For XSL-FO items, this should be either Expr.UNIT_POWER_NUMERIC or Expr.UNIT_POWER_LENGTH.

evalLength

public int evalLength(int pointSize)
Description copied from interface: PropertyValue
Evaluates the expression to a unit power of 1 (length).

Parameters:
pointSize - The point size, in millipoints, of the font. This is used in calculations that are relative to the point size. In cases where the computation of the font-size is expensive, check PropertyValue.lengthRequiresFontSize() first. If that method returns false, zero or some other constant can safely be passed, as it will be ignored anyway.
Returns:
The unit power 1 value (length) of this expression if the expression can be so evaluated, or Integer.MIN_VALUE otherwise. The value is expressed in millipoints.

lengthRequiresFontSize

public boolean lengthRequiresFontSize()
Description copied from interface: PropertyValue
Indicates whether the computation of the length will require an accurate font-size parameter.

Returns:
True iff the computation of the length will require an accurate font-size parameter.

canEvalInteger

public boolean canEvalInteger()
Description copied from interface: PropertyValue
Indicates whether this property value has the ability to express itself as an integer Numeric item.

Returns:
True iff this property value is an integer.

evalInteger

public int evalInteger()
Description copied from interface: PropertyValue
Return this value as an int. This method should only be executed on instances where PropertyValue.canEvalInteger() returns true. Doing so on other instances may result in an IllegalStateException.

Returns:
This value as an int.

canEvalKeyword

public boolean canEvalKeyword()
Description copied from interface: PropertyValue
Indicates whether this property value can evaluate to a keyword.

Returns:
True iff this property value can evaluate to a keyword.

evalKeyword

public PvKeyword evalKeyword()
Description copied from interface: PropertyValue
Returns the keyword value of this property value. This method should only be executed on instances where PropertyValue.canEvalKeyword() returns true. Doing so on other instances may result in an IllegalStateException.

Returns:
The keyword value of this property value.

canEvalPercentage

public boolean canEvalPercentage()
Description copied from interface: PropertyValue
Indicates whether this property value can evaluate to a percentage.

Returns:
True iff this property value can evaluate to a percentage.

evalPercentage

public float evalPercentage()
Description copied from interface: PropertyValue
Returns the percentage value of this property value. This method should only be executed on instances where PropertyValue.canEvalPercentage() returns true. Doing so on other instances may result in an IllegalStateException.

Returns:
The percentage value of this property value.


Copyright © 2017. All rights reserved.