SingletonProxyAbst

public abstract class SingletonProxyAbst extends ProxyAbst

Proxy-класс, типизированная обёртка над не типизированным экземпляром произвольного синглтона из SbtClassLoader’a.

Предназначен для типизации методов класса, вызываемых через рефлекшен.

Область использования: Необходимость вызова методов экземпляра класса, принадлежащего модулю, от которого не зависит текущий модуль.

Constructors

SingletonProxyAbst

public SingletonProxyAbst(String canonicalClassName)

Конструктор для создания экземпляра класса SingletonProxyAbst.

Parameters:
  • canonicalClassName – каноническое имя класса, который будет проксироваться.

Methods

getInstance

protected Object getInstance()
Returns:

Экземпляр проксируемого класса.

getInstance

protected Object getInstance(ClassLoader classLoader)

Получает синглтон проксируемого класса, используя указанный загрузчик классов.

Parameters:
  • classLoader – загрузчик классов, который будет использоваться для получения экземпляра класса.

Throws:
  • ApplicationException – если возникла ошибка при получении экземпляра класса.

Returns:

экземпляр проксируемого класса.

getSbtClassLoader

protected abstract SbtClassLoader getSbtClassLoader()

Метод возвращает текущий загрузчик классов решения.

Throws:
  • ApplicationException – Если что-то пошло не так.

Returns:

загрузчик классов.

invoke

protected final void invoke(SbtClassLoader classLoader, ForwardProcedureWithArg<Object> proc)

Метод необходим для случаев, когда classLoader должен отличаться от умолчательного, возвращаемого методом getSbtClassLoader().

Parameters:
  • classLoader – загрузчик классов.

  • proc – анонимный метод.

Throws:
  • ApplicationException – Если что-то пошло не так.

invoke

protected final <R> R invoke(SbtClassLoader classLoader, ForwardFunctionWithArg<Object, R> func)

Метод необходим для случаев, когда classLoader должен отличаться от умолловочного, возвращаемого методом getSbtClassLoader().

Parameters:
  • classLoader – загрузчик классов.

  • func – анонимный метод.

  • <R> – тип результата анонимного метода.

Throws:
  • ApplicationException – Если что-то пошло не так.

Returns:

результат вызова анонимного метода.