Class Attributes

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Attribute>

    public class Attributes
    extends java.lang.Object
    implements java.lang.Iterable<Attribute>, java.lang.Cloneable
    The attributes of an Element.

    Attributes are treated as a map: there can be only one value associated with an attribute key/name.

    Attribute name and value comparisons are generally case sensitive. By default for HTML, attribute names are normalized to lower-case on parsing. That means you should use lower-case strings when referring to attributes by name.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  Attributes.Dataset  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String dataPrefix  
      private static java.lang.String[] Empty  
      private static java.lang.String EmptyString  
      private static int GrowthFactor  
      private static int InitialCapacity  
      (package private) java.lang.String[] keys  
      (package private) static int NotFound  
      private int size  
      (package private) java.lang.String[] vals  
    • Constructor Summary

      Constructors 
      Constructor Description
      Attributes()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void add​(java.lang.String key, java.lang.String value)  
      void addAll​(Attributes incoming)
      Add all the attributes from the incoming set to this set.
      java.util.List<Attribute> asList()
      Get the attributes as a List, for iteration.
      private void checkCapacity​(int minNewSize)  
      (package private) static java.lang.String checkNotNull​(java.lang.String val)  
      Attributes clone()  
      private static java.lang.String[] copyOf​(java.lang.String[] orig, int size)  
      private static java.lang.String dataKey​(java.lang.String key)  
      java.util.Map<java.lang.String,​java.lang.String> dataset()
      Retrieves a filtered view of attributes that are HTML5 custom data attributes; that is, attributes with keys starting with data-.
      boolean equals​(java.lang.Object o)
      Checks if these attributes are equal to another set of attributes, by comparing the two sets
      java.lang.String get​(java.lang.String key)
      Get an attribute value by key.
      java.lang.String getIgnoreCase​(java.lang.String key)
      Get an attribute's value by case-insensitive key
      int hashCode()
      Calculates the hashcode of these attributes, by iterating all attributes and summing their hashcodes.
      boolean hasKey​(java.lang.String key)
      Tests if these attributes contain an attribute with this key.
      boolean hasKeyIgnoreCase​(java.lang.String key)
      Tests if these attributes contain an attribute with this key.
      java.lang.String html()
      Get the HTML representation of these attributes.
      (package private) void html​(java.lang.Appendable accum, Document.OutputSettings out)  
      (package private) int indexOfKey​(java.lang.String key)  
      private int indexOfKeyIgnoreCase​(java.lang.String key)  
      java.util.Iterator<Attribute> iterator()  
      void normalize()
      Internal method.
      Attributes put​(java.lang.String key, boolean value)
      Set a new boolean attribute, remove attribute if value is false.
      Attributes put​(java.lang.String key, java.lang.String value)
      Set a new attribute, or replace an existing one by key.
      Attributes put​(Attribute attribute)
      Set a new attribute, or replace an existing one by key.
      (package private) void putIgnoreCase​(java.lang.String key, java.lang.String value)  
      private void remove​(int index)  
      void remove​(java.lang.String key)
      Remove an attribute by key.
      void removeIgnoreCase​(java.lang.String key)
      Remove an attribute by key.
      int size()
      Get the number of attributes in this set.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • Empty

        private static final java.lang.String[] Empty
      • size

        private int size
      • keys

        java.lang.String[] keys
      • vals

        java.lang.String[] vals
    • Constructor Detail

      • Attributes

        public Attributes()
    • Method Detail

      • checkCapacity

        private void checkCapacity​(int minNewSize)
      • copyOf

        private static java.lang.String[] copyOf​(java.lang.String[] orig,
                                                 int size)
      • indexOfKey

        int indexOfKey​(java.lang.String key)
      • indexOfKeyIgnoreCase

        private int indexOfKeyIgnoreCase​(java.lang.String key)
      • checkNotNull

        static java.lang.String checkNotNull​(java.lang.String val)
      • get

        public java.lang.String get​(java.lang.String key)
        Get an attribute value by key.
        Parameters:
        key - the (case-sensitive) attribute key
        Returns:
        the attribute value if set; or empty string if not set (or a boolean attribute).
        See Also:
        hasKey(String)
      • getIgnoreCase

        public java.lang.String getIgnoreCase​(java.lang.String key)
        Get an attribute's value by case-insensitive key
        Parameters:
        key - the attribute name
        Returns:
        the first matching attribute value if set; or empty string if not set (ora boolean attribute).
      • add

        private void add​(java.lang.String key,
                         java.lang.String value)
      • put

        public Attributes put​(java.lang.String key,
                              java.lang.String value)
        Set a new attribute, or replace an existing one by key.
        Parameters:
        key - case sensitive attribute key
        value - attribute value
        Returns:
        these attributes, for chaining
      • putIgnoreCase

        void putIgnoreCase​(java.lang.String key,
                           java.lang.String value)
      • put

        public Attributes put​(java.lang.String key,
                              boolean value)
        Set a new boolean attribute, remove attribute if value is false.
        Parameters:
        key - case insensitive attribute key
        value - attribute value
        Returns:
        these attributes, for chaining
      • put

        public Attributes put​(Attribute attribute)
        Set a new attribute, or replace an existing one by key.
        Parameters:
        attribute - attribute with case sensitive key
        Returns:
        these attributes, for chaining
      • remove

        private void remove​(int index)
      • remove

        public void remove​(java.lang.String key)
        Remove an attribute by key. Case sensitive.
        Parameters:
        key - attribute key to remove
      • removeIgnoreCase

        public void removeIgnoreCase​(java.lang.String key)
        Remove an attribute by key. Case insensitive.
        Parameters:
        key - attribute key to remove
      • hasKey

        public boolean hasKey​(java.lang.String key)
        Tests if these attributes contain an attribute with this key.
        Parameters:
        key - case-sensitive key to check for
        Returns:
        true if key exists, false otherwise
      • hasKeyIgnoreCase

        public boolean hasKeyIgnoreCase​(java.lang.String key)
        Tests if these attributes contain an attribute with this key.
        Parameters:
        key - key to check for
        Returns:
        true if key exists, false otherwise
      • size

        public int size()
        Get the number of attributes in this set.
        Returns:
        size
      • addAll

        public void addAll​(Attributes incoming)
        Add all the attributes from the incoming set to this set.
        Parameters:
        incoming - attributes to add to these attributes.
      • iterator

        public java.util.Iterator<Attribute> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Attribute>
      • asList

        public java.util.List<Attribute> asList()
        Get the attributes as a List, for iteration.
        Returns:
        an view of the attributes as an unmodifialbe List.
      • dataset

        public java.util.Map<java.lang.String,​java.lang.String> dataset()
        Retrieves a filtered view of attributes that are HTML5 custom data attributes; that is, attributes with keys starting with data-.
        Returns:
        map of custom data attributes.
      • html

        public java.lang.String html()
        Get the HTML representation of these attributes.
        Returns:
        HTML
        Throws:
        SerializationException - if the HTML representation of the attributes cannot be constructed.
      • html

        final void html​(java.lang.Appendable accum,
                        Document.OutputSettings out)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Checks if these attributes are equal to another set of attributes, by comparing the two sets
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - attributes to compare with
        Returns:
        if both sets of attributes have the same content
      • hashCode

        public int hashCode()
        Calculates the hashcode of these attributes, by iterating all attributes and summing their hashcodes.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        calculated hashcode
      • clone

        public Attributes clone()
        Overrides:
        clone in class java.lang.Object
      • normalize

        public void normalize()
        Internal method. Lowercases all keys.
      • dataKey

        private static java.lang.String dataKey​(java.lang.String key)