# Class SimpleAttributeSet

java.lang.Object
javax.swing.text.SimpleAttributeSet

All Implemented Interfaces:
  `Serializable, Cloneable, AttributeSet, MutableAttributeSet`

public class SimpleAttributeSet extends Object implements MutableAttributeSet, Serializable, Cloneable
A straightforward implementation of MutableAttributeSet using a hash table.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the `java.beans` package. Please see `XMLEncoder`.

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface AttributeSet

  `AttributeSet.CharacterAttribute, AttributeSet.ColorAttribute, AttributeSet.FontAttribute, AttributeSet.ParagraphAttribute`
  Modifier and Type
  Interface
  Description
  `static interface`
  `AttributeSet.CharacterAttribute`
  This interface is the type signature that is expected to be present on any attribute key that contributes to character level presentation.
  `static interface`
  `AttributeSet.ColorAttribute`
  This interface is the type signature that is expected to be present on any attribute key that contributes to presentation of color.
  `static interface`
  `AttributeSet.FontAttribute`
  This interface is the type signature that is expected to be present on any attribute key that contributes to the determination of what font to use to render some text.
  `static interface`
  `AttributeSet.ParagraphAttribute`
  This interface is the type signature that is expected to be present on any attribute key that contributes to the paragraph level presentation.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final AttributeSet`
  `EMPTY`
  An empty attribute set.

  ### Fields declared in interface AttributeSet

  `NameAttribute, ResolveAttribute`
  Modifier and Type
  Field
  Description
  `static final Object`
  `NameAttribute`
  Attribute name used to name the collection of attributes.
  `static final Object`
  `ResolveAttribute`
  Attribute name used to identify the resolving parent set of attributes, if one is defined.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleAttributeSet()`
  Creates a new attribute set.
  `SimpleAttributeSet(AttributeSet source)`
  Creates a new attribute set based on a supplied set of attributes.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAttribute(Object name, Object value)`
  Adds an attribute to the list.
  `void`
  `addAttributes(AttributeSet attributes)`
  Adds a set of attributes to the list.
  `Object`
  `clone()`
  Clones a set of attributes.
  `boolean`
  `containsAttribute(Object name, Object value)`
  Checks whether the attribute list contains a specified attribute name/value pair.
  `boolean`
  `containsAttributes(AttributeSet attributes)`
  Checks whether the attribute list contains all the specified name/value pairs.
  `AttributeSet`
  `copyAttributes()`
  Makes a copy of the attributes.
  `boolean`
  `equals(Object obj)`
  Compares this object to the specified object.
  `Object`
  `getAttribute(Object name)`
  Gets the value of an attribute.
  `int`
  `getAttributeCount()`
  Gets a count of the number of attributes.
  `Enumeration<?>`
  `getAttributeNames()`
  Gets the names of the attributes in the set.
  `AttributeSet`
  `getResolveParent()`
  Gets the resolving parent.
  `int`
  `hashCode()`
  Returns a hashcode for this set of attributes.
  `boolean`
  `isDefined(Object attrName)`
  Tells whether a given attribute is defined.
  `boolean`
  `isEmpty()`
  Checks whether the set of attributes is empty.
  `boolean`
  `isEqual(AttributeSet attr)`
  Compares two attribute sets.
  `void`
  `removeAttribute(Object name)`
  Removes an attribute from the list.
  `void`
  `removeAttributes(Enumeration<?> names)`
  Removes a set of attributes from the list.
  `void`
  `removeAttributes(AttributeSet attributes)`
  Removes a set of attributes from the list.
  `void`
  `setResolveParent(AttributeSet parent)`
  Sets the resolving parent.
  `String`
  `toString()`
  Converts the attribute set to a String.

  ### Methods declared in class Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### EMPTY

    public static final AttributeSet EMPTY
    An empty attribute set.

- ## Constructor Details

  - ### SimpleAttributeSet

    public SimpleAttributeSet()
    Creates a new attribute set.

  - ### SimpleAttributeSet

    public SimpleAttributeSet(AttributeSet source)
    Creates a new attribute set based on a supplied set of attributes.
    Parameters:
      `source` - the set of attributes

- ## Method Details

  - ### isEmpty

    public boolean isEmpty()
    Checks whether the set of attributes is empty.
    Returns:
      true if the set is empty else false

  - ### getAttributeCount

    public int getAttributeCount()
    Gets a count of the number of attributes.
    Specified by:
      `getAttributeCount` in interface `AttributeSet`
    Returns:
      the count

  - ### isDefined

    public boolean isDefined(Object attrName)
    Tells whether a given attribute is defined.
    Specified by:
      `isDefined` in interface `AttributeSet`
    Parameters:
      `attrName` - the attribute name
    Returns:
      true if the attribute is defined

  - ### isEqual

    public boolean isEqual(AttributeSet attr)
    Compares two attribute sets.
    Specified by:
      `isEqual` in interface `AttributeSet`
    Parameters:
      `attr` - the second attribute set
    Returns:
      true if the sets are equal, false otherwise

  - ### copyAttributes

    public AttributeSet copyAttributes()
    Makes a copy of the attributes.
    Specified by:
      `copyAttributes` in interface `AttributeSet`
    Returns:
      the copy

  - ### getAttributeNames

    public Enumeration<?> getAttributeNames()
    Gets the names of the attributes in the set.
    Specified by:
      `getAttributeNames` in interface `AttributeSet`
    Returns:
      the names as an `Enumeration`

  - ### getAttribute

    public Object getAttribute(Object name)
    Gets the value of an attribute.
    Specified by:
      `getAttribute` in interface `AttributeSet`
    Parameters:
      `name` - the attribute name
    Returns:
      the value

  - ### containsAttribute

    public boolean containsAttribute(Object name, Object value)
    Checks whether the attribute list contains a specified attribute name/value pair.
    Specified by:
      `containsAttribute` in interface `AttributeSet`
    Parameters:
      `name` - the name
      `value` - the value
    Returns:
      true if the name/value pair is in the list

  - ### containsAttributes

    public boolean containsAttributes(AttributeSet attributes)
    Checks whether the attribute list contains all the specified name/value pairs.
    Specified by:
      `containsAttributes` in interface `AttributeSet`
    Parameters:
      `attributes` - the attribute list
    Returns:
      true if the list contains all the name/value pairs

  - ### addAttribute

    public void addAttribute(Object name, Object value)
    Adds an attribute to the list.
    Specified by:
      `addAttribute` in interface `MutableAttributeSet`
    Parameters:
      `name` - the attribute name
      `value` - the attribute value

  - ### addAttributes

    public void addAttributes(AttributeSet attributes)
    Adds a set of attributes to the list.
    Specified by:
      `addAttributes` in interface `MutableAttributeSet`
    Parameters:
      `attributes` - the set of attributes to add

  - ### removeAttribute

    public void removeAttribute(Object name)
    Removes an attribute from the list.
    Specified by:
      `removeAttribute` in interface `MutableAttributeSet`
    Parameters:
      `name` - the attribute name

  - ### removeAttributes

    public void removeAttributes(Enumeration<?> names)
    Removes a set of attributes from the list.
    Specified by:
      `removeAttributes` in interface `MutableAttributeSet`
    Parameters:
      `names` - the set of names to remove

  - ### removeAttributes

    public void removeAttributes(AttributeSet attributes)
    Removes a set of attributes from the list.
    Specified by:
      `removeAttributes` in interface `MutableAttributeSet`
    Parameters:
      `attributes` - the set of attributes to remove

  - ### getResolveParent

    public AttributeSet getResolveParent()
    Gets the resolving parent. This is the set of attributes to resolve through if an attribute isn't defined locally. This is null if there are no other sets of attributes to resolve through.
    Specified by:
      `getResolveParent` in interface `AttributeSet`
    Returns:
      the parent

  - ### setResolveParent

    public void setResolveParent(AttributeSet parent)
    Sets the resolving parent.
    Specified by:
      `setResolveParent` in interface `MutableAttributeSet`
    Parameters:
      `parent` - the parent

  - ### clone

    public Object clone()
    Clones a set of attributes.
    Overrides:
      `clone` in class `Object`
    Returns:
      the new set of attributes
    See Also:
      - `Cloneable`

  - ### hashCode

    public int hashCode()
    Returns a hashcode for this set of attributes.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hashcode value for this set of attributes.
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(Object)`

  - ### equals

    public boolean equals(Object obj)
    Compares this object to the specified object. The result is `true` if the object is an equivalent set of attributes.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the object to compare this attribute set with
    Returns:
      `true` if the objects are equal; `false` otherwise
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### toString

    public String toString()
    Converts the attribute set to a String.
    Overrides:
      `toString` in class `Object`
    Returns:
      the string