Class ExtendableAccessor<E extends Extendable,​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 java.lang.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 Summary

      Constructors 
      Constructor Description
      ExtendableAccessor​(java.lang.Class<T> klass)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      T get​(E e)  
      void set​(E e, T value)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExtendableAccessor

        public ExtendableAccessor​(java.lang.Class<T> klass)
    • Method Detail

      • get

        public T get​(E e)
      • set

        public void set​(E e,
                        T value)