blob: 651e2ae71268c7674e218232ae82784d9eaed51c [file] [log] [blame]
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);
}
}