public static <T> HookableOutputStreamManager getHookableManager(final String name, final T data, final ManagerFactory<? extends HookableOutputStreamManager, T> factory) { return AbstractManager.getManager(name, factory, data); }
/** * Implementations should define their own getManager method and call this method from that to create or get * existing managers. * * @param name The manager name, which should include any configuration details that one might want to be able to * reconfigure at runtime, such as database name, username, (hashed) password, etc. * @param data The concrete instance of {@link AbstractFactoryData} appropriate for the given manager. * @param factory A factory instance for creating the appropriate manager. * @param <M> The concrete manager type. * @param <T> The concrete {@link AbstractFactoryData} type. * @return a new or existing manager of the specified type and name. */ protected static <M extends AbstractDatabaseManager, T extends AbstractFactoryData> M getManager( final String name, final T data, final ManagerFactory<M, T> factory ) { return AbstractManager.getManager(name, factory, data); }