Package com.google.gwt.safecss.shared

## Class SafeStylesUtils

- java.lang.Object
- - com.google.gwt.safecss.shared.SafeStylesUtils

-     public final class SafeStylesUtils
      extends java.lang.Object

  Utility class containing static methods for creating `SafeStyles`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `(package private) static class` | `SafeStylesUtils.Impl` | Deprecated.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static SafeStyles` | `forBackgroundImage​(SafeUri uri)` | Sets the background-image CSS property.
    `static SafeStyles` | `forBorderStyle​(Style.BorderStyle value)` | Sets the border-style CSS property.
    `static SafeStyles` | `forBorderWidth​(double value, Style.Unit unit)` | Set the border-width css property.
    `static SafeStyles` | `forBottom​(double value, Style.Unit unit)` | Set the bottom css property.
    `static SafeStyles` | `forClear​(Style.Clear value)` | Sets the 'clear' CSS property.
    `static SafeStyles` | `forCursor​(Style.Cursor value)` | Sets the cursor CSS property.
    `static SafeStyles` | `forDisplay​(Style.Display value)` | Sets the display CSS property.
    `static SafeStyles` | `forFloat​(Style.Float value)` | Set the float css property.
    `static SafeStyles` | `forFontSize​(double value, Style.Unit unit)` | Set the font-size css property.
    `static SafeStyles` | `forFontStyle​(Style.FontStyle value)` | Sets the font-style CSS property.
    `static SafeStyles` | `forFontWeight​(Style.FontWeight value)` | Sets the font-weight CSS property.
    `static SafeStyles` | `forHeight​(double value, Style.Unit unit)` | Set the height css property.
    `static SafeStyles` | `forLeft​(double value, Style.Unit unit)` | Set the left css property.
    `static SafeStyles` | `forLineHeight​(double value, Style.Unit unit)` | Set the line-height css property.
    `static SafeStyles` | `forListStyleType​(Style.ListStyleType value)` | Sets the list-style-type CSS property.
    `static SafeStyles` | `forMargin​(double value, Style.Unit unit)` | Set the margin css property.
    `static SafeStyles` | `forMarginBottom​(double value, Style.Unit unit)` | Set the margin-bottom css property.
    `static SafeStyles` | `forMarginLeft​(double value, Style.Unit unit)` | Set the margin-left css property.
    `static SafeStyles` | `forMarginRight​(double value, Style.Unit unit)` | Set the margin-right css property.
    `static SafeStyles` | `forMarginTop​(double value, Style.Unit unit)` | Set the margin-top css property.
    `static SafeStyles` | `forOpacity​(double value)` | Set the opacity css property.
    `static SafeStyles` | `forOutlineStyle​(Style.OutlineStyle value)` | Sets the outline-style CSS property.
    `static SafeStyles` | `forOutlineWidth​(double value, Style.Unit unit)` | Set the outline-width css property.
    `static SafeStyles` | `forOverflow​(Style.Overflow value)` | Sets the overflow CSS property.
    `static SafeStyles` | `forOverflowX​(Style.Overflow value)` | Sets the overflow-x CSS property.
    `static SafeStyles` | `forOverflowY​(Style.Overflow value)` | Sets the overflow-y CSS property.
    `static SafeStyles` | `forPadding​(double value, Style.Unit unit)` | Set the padding css property.
    `static SafeStyles` | `forPaddingBottom​(double value, Style.Unit unit)` | Set the padding-bottom css property.
    `static SafeStyles` | `forPaddingLeft​(double value, Style.Unit unit)` | Set the padding-left css property.
    `static SafeStyles` | `forPaddingRight​(double value, Style.Unit unit)` | Set the padding-right css property.
    `static SafeStyles` | `forPaddingTop​(double value, Style.Unit unit)` | Set the padding-top css property.
    `static SafeStyles` | `forPosition​(Style.Position value)` | Sets the position CSS property.
    `static SafeStyles` | `forRight​(double value, Style.Unit unit)` | Set the right css property.
    `static SafeStyles` | `forTableLayout​(Style.TableLayout value)` | Set the table-layout CSS property.
    `static SafeStyles` | `forTextAlign​(Style.TextAlign value)` | Sets the 'text-align' CSS property.
    `static SafeStyles` | `forTextDecoration​(Style.TextDecoration value)` | Sets the 'text-decoration' CSS property.
    `static SafeStyles` | `forTextIndent​(double value, Style.Unit unit)` | Set the 'text-indent' CSS property.
    `static SafeStyles` | `forTextJustify​(Style.TextJustify value)` | Set the 'text-justify' CSS3 property.
    `static SafeStyles` | `forTextOverflow​(Style.TextOverflow value)` | Set the 'text-overflow' CSS3 property.
    `static SafeStyles` | `forTextTransform​(Style.TextTransform value)` | Set the 'text-transform' CSS property.
    `static SafeStyles` | `forTop​(double value, Style.Unit unit)` | Set the top css property.
    `static SafeStyles` | `forTrustedBackgroundColor​(java.lang.String value)` | Returns a `SafeStyles` constructed from a trusted background color, i.e., without escaping the value.
    `static SafeStyles` | `forTrustedBackgroundImage​(java.lang.String value)` | Returns a `SafeStyles` constructed from a trusted background image, i.e., without escaping the value.
    `static SafeStyles` | `forTrustedBorderColor​(java.lang.String value)` | Returns a `SafeStyles` constructed from a trusted border color, i.e., without escaping the value.
    `static SafeStyles` | `forTrustedColor​(java.lang.String value)` | Returns a `SafeStyles` constructed from a trusted font color, i.e., without escaping the value.
    `static SafeStyles` | `forTrustedOutlineColor​(java.lang.String value)` | Returns a `SafeStyles` constructed from a trusted outline color, i.e., without escaping the value.
    `static SafeStyles` | `forVerticalAlign​(double value, Style.Unit unit)` | Sets the vertical-align CSS property.
    `static SafeStyles` | `forVerticalAlign​(Style.VerticalAlign value)` | Sets the vertical-align CSS property.
    `static SafeStyles` | `forVisibility​(Style.Visibility value)` | Sets the visibility CSS property.
    `static SafeStyles` | `forWhiteSpace​(Style.WhiteSpace value)` | Set the 'white-space' CSS property.
    `static SafeStyles` | `forWidth​(double value, Style.Unit unit)` | Set the width css property.
    `static SafeStyles` | `forZIndex​(int value)` | Set the z-index css property.
    `static SafeStyles` | `fromTrustedNameAndValue​(java.lang.String name, double value, Style.Unit unit)` | Returns a `SafeStyles` constructed from a trusted name and a trusted value, i.e., without escaping the name and value.
    `static SafeStyles` | `fromTrustedNameAndValue​(java.lang.String name, java.lang.String value)` | Returns a `SafeStyles` constructed from a trusted name and a trusted value, i.e., without escaping the name and value.
    `static SafeStyles` | `fromTrustedString​(java.lang.String s)` | Returns a `SafeStyles` constructed from a trusted string, i.e., without escaping the string.
    `(package private) static void` | `verifySafeStylesConstraints​(java.lang.String styles)` | Verify that the basic constraints of a `SafeStyles` are met.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### forBackgroundImage

          public static SafeStyles forBackgroundImage​(SafeUri uri)

      Sets the background-image CSS property.
      Parameters:
        `uri` - the URI of the background image
      Returns:
        a `SafeStyles` instance
      See Also:
        `forTrustedBackgroundImage(String)`

    - #### forBorderStyle

          public static SafeStyles forBorderStyle​(Style.BorderStyle value)

      Sets the border-style CSS property.

    - #### forBorderWidth

          public static SafeStyles forBorderWidth​(double value,
                                                  Style.Unit unit)

      Set the border-width css property.

    - #### forBottom

          public static SafeStyles forBottom​(double value,
                                             Style.Unit unit)

      Set the bottom css property.

    - #### forClear

          public static SafeStyles forClear​(Style.Clear value)

      Sets the 'clear' CSS property.

    - #### forCursor

          public static SafeStyles forCursor​(Style.Cursor value)

      Sets the cursor CSS property.

    - #### forDisplay

          public static SafeStyles forDisplay​(Style.Display value)

      Sets the display CSS property.

    - #### forFloat

          public static SafeStyles forFloat​(Style.Float value)

      Set the float css property.

    - #### forFontSize

          public static SafeStyles forFontSize​(double value,
                                               Style.Unit unit)

      Set the font-size css property.

    - #### forFontStyle

          public static SafeStyles forFontStyle​(Style.FontStyle value)

      Sets the font-style CSS property.

    - #### forFontWeight

          public static SafeStyles forFontWeight​(Style.FontWeight value)

      Sets the font-weight CSS property.

    - #### forHeight

          public static SafeStyles forHeight​(double value,
                                             Style.Unit unit)

      Set the height css property.

    - #### forLeft

          public static SafeStyles forLeft​(double value,
                                           Style.Unit unit)

      Set the left css property.

    - #### forLineHeight

          public static SafeStyles forLineHeight​(double value,
                                                 Style.Unit unit)

      Set the line-height css property.

    - #### forListStyleType

          public static SafeStyles forListStyleType​(Style.ListStyleType value)

      Sets the list-style-type CSS property.

    - #### forMargin

          public static SafeStyles forMargin​(double value,
                                             Style.Unit unit)

      Set the margin css property.

    - #### forMarginBottom

          public static SafeStyles forMarginBottom​(double value,
                                                   Style.Unit unit)

      Set the margin-bottom css property.

    - #### forMarginLeft

          public static SafeStyles forMarginLeft​(double value,
                                                 Style.Unit unit)

      Set the margin-left css property.

    - #### forMarginRight

          public static SafeStyles forMarginRight​(double value,
                                                  Style.Unit unit)

      Set the margin-right css property.

    - #### forMarginTop

          public static SafeStyles forMarginTop​(double value,
                                                Style.Unit unit)

      Set the margin-top css property.

    - #### forOpacity

          public static SafeStyles forOpacity​(double value)

      Set the opacity css property.

    - #### forOutlineStyle

          public static SafeStyles forOutlineStyle​(Style.OutlineStyle value)

      Sets the outline-style CSS property.

    - #### forOutlineWidth

          public static SafeStyles forOutlineWidth​(double value,
                                                   Style.Unit unit)

      Set the outline-width css property.

    - #### forOverflow

          public static SafeStyles forOverflow​(Style.Overflow value)

      Sets the overflow CSS property.

    - #### forOverflowX

          public static SafeStyles forOverflowX​(Style.Overflow value)

      Sets the overflow-x CSS property.

    - #### forOverflowY

          public static SafeStyles forOverflowY​(Style.Overflow value)

      Sets the overflow-y CSS property.

    - #### forPadding

          public static SafeStyles forPadding​(double value,
                                              Style.Unit unit)

      Set the padding css property.

    - #### forPaddingBottom

          public static SafeStyles forPaddingBottom​(double value,
                                                    Style.Unit unit)

      Set the padding-bottom css property.

    - #### forPaddingLeft

          public static SafeStyles forPaddingLeft​(double value,
                                                  Style.Unit unit)

      Set the padding-left css property.

    - #### forPaddingRight

          public static SafeStyles forPaddingRight​(double value,
                                                   Style.Unit unit)

      Set the padding-right css property.

    - #### forPaddingTop

          public static SafeStyles forPaddingTop​(double value,
                                                 Style.Unit unit)

      Set the padding-top css property.

    - #### forPosition

          public static SafeStyles forPosition​(Style.Position value)

      Sets the position CSS property.

    - #### forRight

          public static SafeStyles forRight​(double value,
                                            Style.Unit unit)

      Set the right css property.

    - #### forTableLayout

          public static SafeStyles forTableLayout​(Style.TableLayout value)

      Set the table-layout CSS property.

    - #### forTextAlign

          public static SafeStyles forTextAlign​(Style.TextAlign value)

      Sets the 'text-align' CSS property.

    - #### forTextDecoration

          public static SafeStyles forTextDecoration​(Style.TextDecoration value)

      Sets the 'text-decoration' CSS property.

    - #### forTextIndent

          public static SafeStyles forTextIndent​(double value,
                                                 Style.Unit unit)

      Set the 'text-indent' CSS property.

    - #### forTextJustify

          public static SafeStyles forTextJustify​(Style.TextJustify value)

      Set the 'text-justify' CSS3 property.

    - #### forTextOverflow

          public static SafeStyles forTextOverflow​(Style.TextOverflow value)

      Set the 'text-overflow' CSS3 property.

    - #### forTextTransform

          public static SafeStyles forTextTransform​(Style.TextTransform value)

      Set the 'text-transform' CSS property.

    - #### forTop

          public static SafeStyles forTop​(double value,
                                          Style.Unit unit)

      Set the top css property.

    - #### forTrustedBackgroundColor

          public static SafeStyles forTrustedBackgroundColor​(java.lang.String value)

      Returns a `SafeStyles` constructed from a trusted background color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      Parameters:
        `value` - the property value
      Returns:
        a `SafeStyles` instance

    - #### forTrustedBackgroundImage

          public static SafeStyles forTrustedBackgroundImage​(java.lang.String value)

      Returns a `SafeStyles` constructed from a trusted background image, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      Parameters:
        `value` - the property value
      Returns:
        a `SafeStyles` instance
      See Also:
        `forBackgroundImage(SafeUri)`

    - #### forTrustedBorderColor

          public static SafeStyles forTrustedBorderColor​(java.lang.String value)

      Returns a `SafeStyles` constructed from a trusted border color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      Parameters:
        `value` - the property value
      Returns:
        a `SafeStyles` instance

    - #### forTrustedColor

          public static SafeStyles forTrustedColor​(java.lang.String value)

      Returns a `SafeStyles` constructed from a trusted font color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      Parameters:
        `value` - the property value
      Returns:
        a `SafeStyles` instance

    - #### forTrustedOutlineColor

          public static SafeStyles forTrustedOutlineColor​(java.lang.String value)

      Returns a `SafeStyles` constructed from a trusted outline color, i.e., without escaping the value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      Parameters:
        `value` - the property value
      Returns:
        a `SafeStyles` instance

    - #### forVerticalAlign

          public static SafeStyles forVerticalAlign​(double value,
                                                    Style.Unit unit)

      Sets the vertical-align CSS property.

    - #### forVerticalAlign

          public static SafeStyles forVerticalAlign​(Style.VerticalAlign value)

      Sets the vertical-align CSS property.

    - #### forVisibility

          public static SafeStyles forVisibility​(Style.Visibility value)

      Sets the visibility CSS property.

    - #### forWhiteSpace

          public static SafeStyles forWhiteSpace​(Style.WhiteSpace value)

      Set the 'white-space' CSS property.

    - #### forWidth

          public static SafeStyles forWidth​(double value,
                                            Style.Unit unit)

      Set the width css property.

    - #### forZIndex

          public static SafeStyles forZIndex​(int value)

      Set the z-index css property.

    - #### fromTrustedNameAndValue

          public static SafeStyles fromTrustedNameAndValue​(java.lang.String name,
                                                           double value,
                                                           Style.Unit unit)

      Returns a `SafeStyles` constructed from a trusted name and a trusted value, i.e., without escaping the name and value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      The name should be in hyphenated format, not camelCase format.

      Parameters:
        `name` - the property name
        `value` - the value
        `unit` - the units of the value
      Returns:
        a `SafeStyles` instance

    - #### fromTrustedNameAndValue

          public static SafeStyles fromTrustedNameAndValue​(java.lang.String name,
                                                           java.lang.String value)

      Returns a `SafeStyles` constructed from a trusted name and a trusted value, i.e., without escaping the name and value. No checks are performed. The calling code should be carefully reviewed to ensure the argument will satisfy the `SafeStyles` contract when they are composed into the form: "<name>:<value>;".

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      The name should be in hyphenated format, not camelCase format.

      Parameters:
        `name` - the property name
        `value` - the property value
      Returns:
        a `SafeStyles` instance

    - #### fromTrustedString

          public static SafeStyles fromTrustedString​(java.lang.String s)

      Returns a `SafeStyles` constructed from a trusted string, i.e., without escaping the string. No checks are performed. The calling code should be carefully reviewed to ensure the argument meets the `SafeStyles` contract.

      Generally, `SafeStyles` should be of the form `cssPropertyName:value;`, where neither the name nor the value contain malicious scripts.

      `SafeStyles` may never contain literal angle brackets. Otherwise, it could be unsafe to place a `SafeStyles` into a <style> tag (where it can't be HTML escaped). For example, if the `SafeStyles` containing " `font: 'foo <style><script>evil</script>`'" is used in a style sheet in a <style> tag, this could then break out of the style context into HTML.

      The following example values comply with this type's contract:

      - `width: 1em;`
      - `height:1em;`
      - `width: 1em;height: 1em;`
      - `background:url('http://url');`
      In addition, the empty string is safe for use in a CSS attribute.

      The following example values do not comply with this type's contract:

      - `background: red` (missing a trailing semi-colon)
      - `background:` (missing a value and a trailing semi-colon)
      - `1em` (missing an attribute name, which provides context for the value)
      Parameters:
        `s` - the input String
      Returns:
        a `SafeStyles` instance

    - #### verifySafeStylesConstraints

          static void verifySafeStylesConstraints​(java.lang.String styles)

      Verify that the basic constraints of a `SafeStyles` are met. This method is not a guarantee that the specified css is safe for use in a CSS style attribute. It is a minimal set of assertions to check for common errors.
      Parameters:
        `styles` - the CSS properties string
      Throws:
        `java.lang.NullPointerException` - if the css is null
        `java.lang.AssertionError` - if the css does not meet the constraints