Class StrokeImpl

  • All Implemented Interfaces:
    Cloneable, Stroke, Cloneable

    public class StrokeImpl
    extends Object
    implements Stroke, Cloneable
    Provides a Java representation of the Stroke object in an SLD document. A stroke defines how a line is rendered.
    Author:
    James Macgill, CCG
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Stroke DEFAULT  
      static Stroke NULL
      Null Stroke capturing the defaults indicated by the standard.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected StrokeImpl()
      Creates a new instance of Stroke
      protected StrokeImpl​(FilterFactory factory)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void accept​(StyleVisitor visitor)  
      Object accept​(TraversingStyleVisitor visitor, Object data)
      calls the visit method of a StyleVisitor
      Object clone()
      Clone the StrokeImpl object.
      List<Expression> dashArray()
      This parameter encodes the dash pattern as a list of expressions.
      The first expression gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
      If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.
      boolean equals​(Object oth)
      Compares this stroke with another stroke for equality.
      Expression getColor()
      This parameter gives the solid color that will be used for a stroke.
      The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed with the hash (#) sign.
      Color getColor​(SimpleFeature feature)  
      float[] getDashArray()
      Shortcut to retrieve dash array in the case where all expressions are literal numbers.
      Expression getDashOffset()
      This param determines where the dash pattern should start from.
      Graphic getGraphicFill()
      This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
      Graphic getGraphicStroke()
      This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use.
      Expression getLineCap()
      This parameter controls how line strings should be capped.
      Expression getLineJoin()
      This parameter controls how line strings should be joined together.
      Expression getOpacity()
      This specifies the level of translucency to use when rendering the stroke.
      The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque.
      Expression getWidth()
      This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float.
      int hashCode()  
      void setColor​(String color)
      This parameter sets the solid color that will be used for a stroke.
      The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed with the hash (#) sign.
      void setColor​(Expression color)
      This parameter sets the solid color that will be used for a stroke.
      The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed with the hash (#) sign.
      void setDashArray​(float[] literalDashArray)
      Shortcut to define dash array using literal numbers.
      void setDashArray​(List<Expression> dashArray)
      This parameter encodes the dash pattern as a list of expressions.
      The first expression gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
      If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.
      void setDashOffset​(Expression dashOffset)
      This param determines where the dash pattern should start from.
      void setFilterFactory​(FilterFactory factory)  
      void setGraphicFill​(Graphic fillGraphic)
      This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
      void setGraphicStroke​(Graphic strokeGraphic)
      This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use.
      void setLineCap​(Expression lineCap)
      This parameter controls how line strings should be capped.
      void setLineJoin​(Expression lineJoin)
      This parameter controls how line strings should be joined together.
      void setOpacity​(Expression opacity)
      This specifies the level of translucency to use when rendering the stroke.
      The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque.
      void setWidth​(Expression width)
      This parameter sets the absolute width (thickness) of a stroke in pixels encoded as a float.
      String toString()  
      • Methods inherited from class Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • DEFAULT

        public static Stroke DEFAULT
      • NULL

        public static final Stroke NULL
        Null Stroke capturing the defaults indicated by the standard.

        This is a NullObject, it purpose is to prevent client code from having to do null checking.

    • Constructor Detail

      • StrokeImpl

        protected StrokeImpl()
        Creates a new instance of Stroke
    • Method Detail

      • setFilterFactory

        public void setFilterFactory​(FilterFactory factory)
      • getColor

        public Expression getColor()
        This parameter gives the solid color that will be used for a stroke.
        The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed with the hash (#) sign. The hexidecimal digits between A and F may be in either upper or lower case. For example, full red is encoded as "#ff0000" (with no quotation marks). The default color is defined to be black ("#000000"). Note: in CSS this parameter is just called Stroke and not Color.
        Specified by:
        getColor in interface Stroke
        Returns:
        The color of the stroke encoded as a hexidecimal RGB value.
      • setColor

        public void setColor​(Expression color)
        This parameter sets the solid color that will be used for a stroke.
        The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed with the hash (#) sign. The hexidecimal digits between A and F may be in either upper or lower case. For example, full red is encoded as "#ff0000" (with no quotation marks). The default color is defined to be black ("#000000"). Note: in CSS this parameter is just called Stroke and not Color.
        Specified by:
        setColor in interface Stroke
        Parameters:
        color - The color of the stroke encoded as a hexidecimal RGB value. This must not be null.
      • setColor

        public void setColor​(String color)
        This parameter sets the solid color that will be used for a stroke.
        The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed with the hash (#) sign. The hexidecimal digits between A and F may be in either upper or lower case. For example, full red is encoded as "#ff0000" (with no quotation marks). The default color is defined to be black ("#000000"). Note: in CSS this parameter is just called Stroke and not Color.
        Parameters:
        color - The color of the stroke encoded as a hexidecimal RGB value.
      • getDashArray

        public float[] getDashArray()
        Shortcut to retrieve dash array in the case where all expressions are literal numbers. Return the default value if one of the expressions is not a literal.
        Specified by:
        getDashArray in interface Stroke
        Returns:
        expression
      • setDashArray

        public void setDashArray​(float[] literalDashArray)
        Shortcut to define dash array using literal numbers.
        Specified by:
        setDashArray in interface Stroke
      • dashArray

        public List<Expression> dashArray()
        This parameter encodes the dash pattern as a list of expressions.
        The first expression gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
        If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.

        For example, "2 1 3 2" would produce:
        -- ---  -- ---  -- ---   -- ---  -- ---  --

        Specified by:
        dashArray in interface Stroke
      • setDashArray

        public void setDashArray​(List<Expression> dashArray)
        This parameter encodes the dash pattern as a list of expressions.
        The first expression gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
        If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.

        For example, "2 1 3 2" would produce:
        -- ---  -- ---  -- ---   -- ---  -- ---  --

        Specified by:
        setDashArray in interface Stroke
      • getDashOffset

        public Expression getDashOffset()
        This param determines where the dash pattern should start from.
        Specified by:
        getDashOffset in interface Stroke
        Returns:
        where the dash should start from.
      • setDashOffset

        public void setDashOffset​(Expression dashOffset)
        This param determines where the dash pattern should start from.
        Specified by:
        setDashOffset in interface Stroke
        Parameters:
        dashOffset - The distance into the dash pattern that should act as the start.
      • getGraphicFill

        public Graphic getGraphicFill()
        This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
        Specified by:
        getGraphicFill in interface Stroke
        Returns:
        The graphic to use as a stipple fill. If null, then no Stipple fill should be used.
      • setGraphicFill

        public void setGraphicFill​(Graphic fillGraphic)
        This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
        Specified by:
        setGraphicFill in interface Stroke
        Parameters:
        fillGraphic - The graphic to use as a stipple fill. If null, then no Stipple fill should be used.
      • getGraphicStroke

        public Graphic getGraphicStroke()
        This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use. Proper stroking with a linear graphic requires two "hot-spot" points within the space of the graphic to indicate where the rendering line starts and stops. In the case of raster images with no special mark-up, this line will be assumed to be the middle pixel row of the image, starting from the first pixel column and ending at the last pixel column.
        Specified by:
        getGraphicStroke in interface Stroke
        Returns:
        The graphic to use as a linear graphic. If null, then no graphic stroke should be used.
      • setGraphicStroke

        public void setGraphicStroke​(Graphic strokeGraphic)
        This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use. Proper stroking with a linear graphic requires two "hot-spot" points within the space of the graphic to indicate where the rendering line starts and stops. In the case of raster images with no special mark-up, this line will be assumed to be the middle pixel row of the image, starting from the first pixel column and ending at the last pixel column.
        Specified by:
        setGraphicStroke in interface Stroke
        Parameters:
        strokeGraphic - The graphic to use as a linear graphic. If null, then no graphic stroke should be used.
      • getLineCap

        public Expression getLineCap()
        This parameter controls how line strings should be capped.
        Specified by:
        getLineCap in interface Stroke
        Returns:
        The cap style. This will be one of "butt", "round" and "square" There is no defined default.
      • setLineCap

        public void setLineCap​(Expression lineCap)
        This parameter controls how line strings should be capped.
        Specified by:
        setLineCap in interface Stroke
        Parameters:
        lineCap - The cap style. This can be one of "butt", "round" and "square" There is no defined default.
      • getLineJoin

        public Expression getLineJoin()
        This parameter controls how line strings should be joined together.
        Specified by:
        getLineJoin in interface Stroke
        Returns:
        The join style. This will be one of "mitre", "round" and "bevel". There is no defined default.
      • setLineJoin

        public void setLineJoin​(Expression lineJoin)
        This parameter controls how line strings should be joined together.
        Specified by:
        setLineJoin in interface Stroke
        Parameters:
        lineJoin - The join style. This will be one of "mitre", "round" and "bevel". There is no defined default.
      • getOpacity

        public Expression getOpacity()
        This specifies the level of translucency to use when rendering the stroke.
        The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque. A linear scale of translucency is used for intermediate values.
        For example, "0.65" would represent 65% opacity. The default value is 1.0 (opaque).
        Specified by:
        getOpacity in interface Stroke
        Returns:
        The opacity of the stroke, where 0.0 is completely transparent and 1.0 is completely opaque.
      • setOpacity

        public void setOpacity​(Expression opacity)
        This specifies the level of translucency to use when rendering the stroke.
        The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque. A linear scale of translucency is used for intermediate values.
        For example, "0.65" would represent 65% opacity. The default value is 1.0 (opaque).
        Specified by:
        setOpacity in interface Stroke
        Parameters:
        opacity - The opacity of the stroke, where 0.0 is completely transparent and 1.0 is completely opaque.
      • getWidth

        public Expression getWidth()
        This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float. The default is 1.0. Fractional numbers are allowed but negative numbers are not.
        Specified by:
        getWidth in interface Stroke
        Returns:
        The width of the stroke in pixels. This may be fractional but not negative.
      • setWidth

        public void setWidth​(Expression width)
        This parameter sets the absolute width (thickness) of a stroke in pixels encoded as a float. The default is 1.0. Fractional numbers are allowed but negative numbers are not.
        Specified by:
        setWidth in interface Stroke
        Parameters:
        width - The width of the stroke in pixels. This may be fractional but not negative.
      • toString

        public String toString()
        Overrides:
        toString in class Object
      • accept

        public Object accept​(TraversingStyleVisitor visitor,
                             Object data)
        Description copied from interface: Stroke
        calls the visit method of a StyleVisitor
        Specified by:
        accept in interface Stroke
        Parameters:
        visitor - the style visitor
      • clone

        public Object clone()
        Clone the StrokeImpl object.

        The clone is a deep copy of the original, except for the expression values which are immutable.

        Specified by:
        clone in interface Cloneable
        Overrides:
        clone in class Object
        Returns:
        A copy of this object.
        See Also:
        Object.clone()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(Object oth)
        Compares this stroke with another stroke for equality.
        Overrides:
        equals in class Object
        Parameters:
        oth - The other StrokeImpl to compare
        Returns:
        True if this and oth are equal.