Class ContextAttributes

  • Direct Known Subclasses:

    public abstract class ContextAttributes
    extends Object
    Helper class used for storing and accessing per-call attributes. Storage is two-layered: at higher precedence, we have actual per-call attributes; and at lower precedence, default attributes that may be defined for Object readers and writers.

    Note that the way mutability is implemented differs between kinds of attributes, to account for thread-safety: per-call attributes are handled assuming that instances are never shared, whereas changes to per-reader/per-writer attributes are made assuming sharing, by creating new copies instead of modifying state. This allows sharing of default values without per-call copying, but requires two-level lookup on access.

    • Constructor Detail

      • ContextAttributes

        public ContextAttributes()
    • Method Detail

      • withSharedAttributes

        public abstract ContextAttributes withSharedAttributes​(Map<?,​?> attributes)
      • getAttribute

        public abstract Object getAttribute​(Object key)
        Accessor for value of specified attribute
      • withPerCallAttribute

        public abstract ContextAttributes withPerCallAttribute​(Object key,
                                                               Object value)
        Mutator used during call (via context) to set value of "non-shared" part of attribute set.