public abstract class JavaProjectModelModifier
extends java.lang.Object
JavaProjectModelModificationService
.
The default implementation which modify IDEA's project model directly is registered as the last extension so it'll be executed if all other
extensions refuse to handle modification by returning null
.JavaProjectModelModificationService
Modifier and Type | Field and Description |
---|---|
static ExtensionPointName<JavaProjectModelModifier> |
EP_NAME |
Constructor and Description |
---|
JavaProjectModelModifier() |
Modifier and Type | Method and Description |
---|---|
abstract Promise<java.lang.Void> |
addExternalLibraryDependency(java.util.Collection<? extends Module> modules,
ExternalLibraryDescriptor descriptor,
DependencyScope scope)
Implementation of this method should add dependency from modules
modules to an external library with scope scope accordingly
to this dependencies management system. |
Promise<java.lang.Void> |
addLibraryDependency(Module from,
Library library,
DependencyScope scope,
boolean exported)
Implementation of this method should add dependency from module
from to library with scope scope accordingly
to this dependencies management system. |
Promise<java.lang.Void> |
addModuleDependency(Module from,
Module to,
DependencyScope scope,
boolean exported)
Implementation of this method should add dependency from module
from to module to with scope scope accordingly
to this dependencies management system. |
abstract Promise<java.lang.Void> |
changeLanguageLevel(Module module,
LanguageLevel level)
Implementation of this method should set language level for module
module to the specified value accordingly
to this dependencies management system. |
public static final ExtensionPointName<JavaProjectModelModifier> EP_NAME
public Promise<java.lang.Void> addModuleDependency(Module from, Module to, DependencyScope scope, boolean exported)
from
to module to
with scope scope
accordingly
to this dependencies management system. If it takes some time to propagate changes in the external project configuration to IDEA's
project model the method may schedule this work for asynchronous execution and return Promise
instance which will be fulfilled
when the work is done.Promise
instance if dependencies between these modules can be handled by this dependencies management system or
null
otherwisepublic Promise<java.lang.Void> addLibraryDependency(Module from, Library library, DependencyScope scope, boolean exported)
from
to library
with scope scope
accordingly
to this dependencies management system. If it takes some time to propagate changes in the external project configuration to IDEA's
project model the method may schedule this work for asynchronous execution and return Promise
instance which will be fulfilled
when the work is done.Promise
instance if dependencies between these modules can be handled by this dependencies management system or
null
otherwisepublic abstract Promise<java.lang.Void> addExternalLibraryDependency(java.util.Collection<? extends Module> modules, ExternalLibraryDescriptor descriptor, DependencyScope scope)
modules
to an external library with scope scope
accordingly
to this dependencies management system. If it takes some time to propagate changes in the external project configuration to IDEA's
project model the method may schedule this work for asynchronous execution and return Promise
instance which will be fulfilled
when the work is done.Promise
instance if dependencies of these modules can be handled by this dependencies management system or
null
otherwisepublic abstract Promise<java.lang.Void> changeLanguageLevel(Module module, LanguageLevel level)
module
to the specified value accordingly
to this dependencies management system. If it takes some time to propagate changes in the external project configuration to IDEA's
project model the method may schedule this work for asynchronous execution and return Promise
instance which will be fulfilled
when the work is done.Promise
instance if language level can be set by this dependencies management system or null
otherwise