Example usage for org.eclipse.jdt.core IClasspathAttribute MODULE

List of usage examples for org.eclipse.jdt.core IClasspathAttribute MODULE

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IClasspathAttribute MODULE.

Prototype

String MODULE

To view the source code for org.eclipse.jdt.core IClasspathAttribute MODULE.

Click Source Link

Document

Constant for the name of the module attribute.

Usage

From source file:org.eclipse.m2e.jdt.internal.InternalModuleSupport.java

License:Open Source License

/**
 * Sets <code>module</code flag to <code>true</code> to classpath dependencies declared in module-info.java
 * //from  ww  w .j  av  a2 s.c  o  m
 * @param facade a Maven facade project
 * @param classpath a classpath descriptor
 * @param monitor a progress monitor
 */
public static void configureClasspath(IMavenProjectFacade facade, IClasspathDescriptor classpath,
        IProgressMonitor monitor) throws CoreException {
    IJavaProject javaProject = JavaCore.create(facade.getProject());
    if (javaProject == null || !javaProject.exists()) {
        return;
    }
    IModuleDescription moduleDescription = javaProject.getModuleDescription();
    if (!(moduleDescription instanceof AbstractModule)) {
        return;
    }
    AbstractModule module = (AbstractModule) moduleDescription;
    Set<String> requiredModules = Stream.of(module.getRequiredModules()).map(m -> new String(m.name()))
            .collect(Collectors.toSet());
    for (IClasspathEntryDescriptor entry : classpath.getEntryDescriptors()) {
        String moduleName = getModuleName(entry, monitor);
        if (requiredModules.contains(moduleName)) {
            entry.setClasspathAttribute(IClasspathAttribute.MODULE, Boolean.TRUE.toString());
        }
    }
}