| package com.intellij.remoteServer.agent.impl; |
| |
| import com.intellij.remoteServer.agent.RemoteAgentProxyFactory; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| import java.io.File; |
| import java.util.List; |
| |
| /** |
| * @author michael.golubev |
| */ |
| public class RemoteAgentThreadProxyFactory implements RemoteAgentProxyFactory { |
| |
| private final RemoteAgentThreadProxyCreator myCreator; |
| private final RemoteAgentProxyFactory myDelegate; |
| |
| public RemoteAgentThreadProxyFactory(CallerClassLoaderProvider callerClassLoaderProvider, @NotNull RemoteAgentProxyFactory delegate, |
| @Nullable ChildWrapperCreator preWrapperCreator) { |
| myCreator = new RemoteAgentThreadProxyCreator(callerClassLoaderProvider, preWrapperCreator); |
| myDelegate = delegate; |
| } |
| |
| @Override |
| public <T> T createProxy(List<File> libraries, Class<T> agentInterface, String agentClassName) throws Exception { |
| T agentDelegate = myDelegate.createProxy(libraries, agentInterface, agentClassName); |
| return myCreator.createProxy(agentInterface, agentDelegate); |
| } |
| } |