Class SimpleAttachable

java.lang.Object
org.jboss.as.server.deployment.SimpleAttachable
All Implemented Interfaces:
Attachable
Direct Known Subclasses:
ModuleSpecification, ResourceRoot

public class SimpleAttachable extends Object implements Attachable
A simple implementation of Attachable which may be used as a base class or on a standalone basis.

This class is thread safe, as all methods are synchronized.

Author:
David M. Lloyd
  • Constructor Details

    • SimpleAttachable

      public SimpleAttachable()
  • Method Details

    • hasAttachment

      public boolean hasAttachment(AttachmentKey<?> key)
      Check if an attachment exists for this key.
      Specified by:
      hasAttachment in interface Attachable
      Parameters:
      key - the attachment key
      Returns:
      false if there is none
    • getAttachment

      public <T> T getAttachment(AttachmentKey<T> key)
      Get an attachment value. If no attachment exists for this key, null is returned.
      Specified by:
      getAttachment in interface Attachable
      Type Parameters:
      T - the value type
      Parameters:
      key - the attachment key
      Returns:
      the value, or null if there is none
    • getAttachmentList

      public <T> List<T> getAttachmentList(AttachmentKey<? extends List<T>> key)
      Gets a list attachment value. If not attachment exists for this key an empty list is returned
      Specified by:
      getAttachmentList in interface Attachable
      Type Parameters:
      T - the value type
      Parameters:
      key - the attachment key
      Returns:
      the value, or an empty list if there is none
    • putAttachment

      public <T> T putAttachment(AttachmentKey<T> key, T value)
      Set an attachment value. If an attachment for this key was already set, return the original value. If the value being set is null, the attachment key is removed.
      Specified by:
      putAttachment in interface Attachable
      Type Parameters:
      T - the value type
      Parameters:
      key - the attachment key
      value - the new value
      Returns:
      the old value, or null if there was none
    • removeAttachment

      public <T> T removeAttachment(AttachmentKey<T> key)
      Remove an attachment, returning its previous value.
      Specified by:
      removeAttachment in interface Attachable
      Type Parameters:
      T - the value type
      Parameters:
      key - the attachment key
      Returns:
      the old value, or null if there was none
    • addToAttachmentList

      public <T> void addToAttachmentList(AttachmentKey<AttachmentList<T>> key, T value)
      Add a value to a list-typed attachment key. If the key is not mapped, add such a mapping.
      Specified by:
      addToAttachmentList in interface Attachable
      Type Parameters:
      T - the list value type
      Parameters:
      key - the attachment key
      value - the value to add
    • attachmentKeys

      public Set<AttachmentKey<?>> attachmentKeys()