Class CustomAttribute

  • All Implemented Interfaces:
    Serializable
    Direct Known Subclasses:
    ClassAttributeHandler, StyleAttributeHandler

    public abstract class CustomAttribute
    extends Object
    implements Serializable
    Callback for handling attributes with special semantics. This is used for e.g. class which is assembled from a separate list of tokens instead of being stored as a regular attribute string.

    For internal use only. May be renamed or removed in a future release.

    Since:
    1.0
    See Also:
    Serialized Form
    • Constructor Detail

      • CustomAttribute

        public CustomAttribute()
    • Method Detail

      • get

        public static Optional<CustomAttribute> get​(String name)
        Gets the custom attribute with the provided name, if present.
        Parameters:
        name - the name of the attribute
        Returns:
        and optional custom attribute, or an empty optional if there is no attribute with the given name
      • getNames

        public static Set<String> getNames()
        Gets an unmodifiable set of custom attribute names.
        Returns:
        a set of attribute names
      • hasAttribute

        public abstract boolean hasAttribute​(Element element)
        Checks what Element.hasAttribute(String) should return for this attribute.
        Parameters:
        element - the element to check, not null
        Returns:
        true if the element has a value for this attribute, otherwise false
      • getAttribute

        public abstract String getAttribute​(Element element)
        Gets the value that should be returned by Element.getAttribute(String) for this attribute.
        Parameters:
        element - the element to check, not null
        Returns:
        the attribute value
      • setAttribute

        public abstract void setAttribute​(Element element,
                                          String value)
        Sets the value when Element.setAttribute(String, String) is called for this attribute.
        Parameters:
        element - the element for which to set the value, not null
        value - the new attribute value, not null
      • removeAttribute

        public abstract void removeAttribute​(Element element)
        Removes the attribute when Element.removeAttribute(String) is called for this attribute.
        Parameters:
        element - the element for which to remove the attribute, not null