blob: 4e5482d3d422d6313540d35f0ae748981e39db6f [file] [log] [blame]
package com.intellij.remote;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.project.Project;
import com.intellij.util.PathMappingSettings;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.List;
/**
* @author traff
*/
public abstract class PathMappingProvider {
public static ExtensionPointName<PathMappingProvider> EP_NAME = ExtensionPointName.create("com.intellij.remote.pathMappingProvider");
public static List<PathMappingProvider> getSuitableMappingProviders(final RemoteSdkAdditionalData data) {
return Lists
.newArrayList(Iterables.filter(Arrays.asList(EP_NAME.getExtensions()), new Predicate<PathMappingProvider>() {
@Override
public boolean apply(PathMappingProvider provider) {
return provider.accepts(data);
}
}));
}
public abstract boolean accepts(@Nullable RemoteSdkAdditionalData data);
@NotNull
public abstract PathMappingSettings getPathMappingSettings(@NotNull Project project, @NotNull RemoteSdkAdditionalData data);
}