mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Allow OrderEnumeratorHandler to have state
This commit is contained in:
@@ -19,6 +19,7 @@ import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
@@ -26,12 +27,18 @@ import java.util.Collection;
|
||||
* @author nik
|
||||
*/
|
||||
public abstract class OrderEnumerationHandler {
|
||||
public static final ExtensionPointName<OrderEnumerationHandler> EP_NAME =
|
||||
ExtensionPointName.create("com.intellij.orderEnumerationHandler");
|
||||
public static final ExtensionPointName<Factory> EP_NAME =
|
||||
ExtensionPointName.create("com.intellij.orderEnumerationHandlerFactory");
|
||||
|
||||
public abstract boolean isApplicable(@NotNull Project project);
|
||||
public static abstract class Factory {
|
||||
|
||||
public abstract boolean isApplicable(@NotNull Project project);
|
||||
|
||||
public abstract boolean isApplicable(@NotNull Module module);
|
||||
|
||||
public abstract OrderEnumerationHandler createHandler(@Nullable Module module);
|
||||
}
|
||||
|
||||
public abstract boolean isApplicable(@NotNull Module module);
|
||||
|
||||
public static enum AddDependencyType {ADD, DO_NOT_ADD, DEFAULT}
|
||||
|
||||
|
||||
@@ -56,12 +56,12 @@ abstract class OrderEnumeratorBase extends OrderEnumerator implements OrderEnume
|
||||
public OrderEnumeratorBase(@Nullable Module module, @NotNull Project project, @Nullable OrderRootsCache cache) {
|
||||
myCache = cache;
|
||||
List<OrderEnumerationHandler> customHandlers = null;
|
||||
for (OrderEnumerationHandler handler : OrderEnumerationHandler.EP_NAME.getExtensions()) {
|
||||
if (handler.isApplicable(project) && (module == null || handler.isApplicable(module))) {
|
||||
for (OrderEnumerationHandler.Factory handlerFactory : OrderEnumerationHandler.EP_NAME.getExtensions()) {
|
||||
if (handlerFactory.isApplicable(project) && (module == null || handlerFactory.isApplicable(module))) {
|
||||
if (customHandlers == null) {
|
||||
customHandlers = new SmartList<OrderEnumerationHandler>();
|
||||
}
|
||||
customHandlers.add(handler);
|
||||
customHandlers.add(handlerFactory.createHandler(module));
|
||||
}
|
||||
}
|
||||
this.myCustomHandlers = customHandlers == null ? Collections.<OrderEnumerationHandler>emptyList() : customHandlers;
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
<extensionPoint name="roots.watchedRootsProvider" interface="com.intellij.openapi.roots.WatchedRootsProvider" area="IDEA_PROJECT"/>
|
||||
<extensionPoint name="moduleExtension" interface="com.intellij.openapi.roots.ModuleExtension" area="IDEA_MODULE"/>
|
||||
<extensionPoint name="orderRootType" interface="com.intellij.openapi.roots.OrderRootType"/>
|
||||
<extensionPoint name="orderEnumerationHandler" interface="com.intellij.openapi.roots.OrderEnumerationHandler"/>
|
||||
<extensionPoint name="orderEnumerationHandlerFactory" interface="com.intellij.openapi.roots.OrderEnumerationHandler$Factory"/>
|
||||
<extensionPoint name="directoryIndexExcludePolicy" interface="com.intellij.openapi.roots.impl.DirectoryIndexExcludePolicy"
|
||||
area="IDEA_PROJECT"/>
|
||||
<extensionPoint name="librarySettingsProvider" interface="com.intellij.openapi.roots.ui.configuration.LibrarySettingsProvider"/>
|
||||
|
||||
+19
-8
@@ -21,6 +21,7 @@ import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.maven.importing.MavenRootModelAdapter;
|
||||
import org.jetbrains.idea.maven.model.MavenArtifact;
|
||||
import org.jetbrains.idea.maven.model.MavenConstants;
|
||||
@@ -32,16 +33,26 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class MavenOrderEnumeratorHandler extends OrderEnumerationHandler {
|
||||
@Override
|
||||
public boolean isApplicable(@NotNull Project project) {
|
||||
return MavenProjectsManager.getInstance(project).isMavenizedProject();
|
||||
|
||||
public static class FactoryImpl extends OrderEnumerationHandler.Factory {
|
||||
@Override
|
||||
public boolean isApplicable(@NotNull Project project) {
|
||||
return MavenProjectsManager.getInstance(project).isMavenizedProject();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplicable(@NotNull Module module) {
|
||||
final MavenProjectsManager manager = MavenProjectsManager.getInstance(module.getProject());
|
||||
return manager.isMavenizedModule(module);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderEnumerationHandler createHandler(@Nullable Module module) {
|
||||
return INSTANCE;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplicable(@NotNull Module module) {
|
||||
final MavenProjectsManager manager = MavenProjectsManager.getInstance(module.getProject());
|
||||
return manager.isMavenizedModule(module);
|
||||
}
|
||||
private static final MavenOrderEnumeratorHandler INSTANCE = new MavenOrderEnumeratorHandler();
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
|
||||
<configurationType implementation="org.jetbrains.idea.maven.execution.MavenRunConfigurationType"/>
|
||||
<configurationProducer implementation="org.jetbrains.idea.maven.execution.MavenConfigurationProducer"/>
|
||||
<orderEnumerationHandler implementation="org.jetbrains.idea.maven.execution.MavenOrderEnumeratorHandler"/>
|
||||
<orderEnumerationHandlerFactory implementation="org.jetbrains.idea.maven.execution.MavenOrderEnumeratorHandler$FactoryImpl"/>
|
||||
|
||||
<compiler implementation="org.jetbrains.idea.maven.compiler.MavenResourceCompiler" order="last"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user