Class ExtendableAccessor<E extends Extendable, T>

java.lang.Object
org.apache.qpid.proton.engine.ExtendableAccessor<E,T>
Type Parameters:
E - An Extendable type where the data is to be stored
T - The type of the data to be stored

public final class ExtendableAccessor<E extends Extendable, T> extends Object
A typesafe convenience class for associating additional data with Extendable classes.

An instance of ExtendableAccessor uses itself as the key in the Extendable.attachments() so it's best instantiated as a static final member.

  class Foo extends BaseHandler {
    private static ExtendableAccessor<Link, Bar> LINK_BAR = new ExtendableAccessor<>(Bar.class);
    void onLinkRemoteOpen(Event e) {
      Bar bar = LINK_BAR.get(e.getLink());
      if (bar == null) {
        bar = new Bar();
        LINK_BAR.set(e.getLink(), bar);
        }
      }
    }
  • Constructor Details

    • ExtendableAccessor

      public ExtendableAccessor(Class<T> klass)
  • Method Details

    • get

      public T get(E e)
    • set

      public void set(E e, T value)