T - public abstract class ExtensionManager<T extends ExtensionHandler> extends Object implements InvocationHandler
ExtensionResultStatusType 
 to determine whether or not to continue with other handlers.| Modifier and Type | Field and Description | 
|---|---|
| protected T | extensionHandler | 
| protected List<T> | handlers | 
| protected boolean | handlersSorted | 
| protected static String | LOCK_OBJECT | 
| Constructor and Description | 
|---|
| ExtensionManager(Class<T> _clazz)Should take in a className that matches the ExtensionHandler interface being managed. | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | continueOnHandled()Returns whether or not this extension manager continues on  ExtensionResultStatusType.HANDLED. | 
| protected ExtensionResultStatusType | execute(ExtensionManagerOperation operation,
       Object... params)Provides a mechanism for executing multiple extension handler touchpoints without utilizing reflection. | 
| List<T> | getHandlers()If you are attempting to register a handler with this manager and are invoking this outside of an  ExtensionManagersubclass, consider usingregisterHandler(ExtensionHandler)instead. | 
| int | getPriority()ExtensionManagers don't really need a priority but they pick up this property due to the 
 fact that we want them to implement the same interface | 
| T | getProxy() | 
| Object | invoke(Object proxy,
      Method method,
      Object[] args) | 
| boolean | registerHandler(T handler)Intended to be invoked from the extension handlers themselves. | 
| void | setHandlers(List<T> handlers) | 
| boolean | shouldContinue(ExtensionResultStatusType result,
              ExtensionHandler handler,
              Method method,
              Object[] args)Utility method that is useful for determining whether or not an ExtensionManager implementation
 should continue after processing a ExtensionHandler call. | 
| protected void | sortHandlers() | 
protected boolean handlersSorted
protected static String LOCK_OBJECT
protected T extends ExtensionHandler extensionHandler
protected List<T extends ExtensionHandler> handlers
public T getProxy()
public List<T> getHandlers()
ExtensionManager
 subclass, consider using registerHandler(ExtensionHandler) instead.
 
 While the sorting of the handlers prior to their return is thread safe, adding directly to this list is not.#registerHandler(ExtensionHandler)}protected void sortHandlers()
public boolean registerHandler(T handler)
ExtensionManager
 by checking the class names of the already-added handlers.
 
 This method is thread safe.handler - the handler to register with this extension managerpublic boolean shouldContinue(ExtensionResultStatusType result, ExtensionHandler handler, Method method, Object[] args)
public boolean continueOnHandled()
ExtensionResultStatusType.HANDLED.public int getPriority()
ExtensionManagers don't really need a priority but they pick up this property due to the 
 fact that we want them to implement the same interface public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
invoke in interface InvocationHandlerThrowableprotected ExtensionResultStatusType execute(ExtensionManagerOperation operation, Object... params)
operation - params - Copyright © 2020. All rights reserved.