use of com.intellij.javaee.web.WebRoot in project intellij-plugins by JetBrains.
the class FileReferenceSetHelper method addWebDirectoryAndCurrentNamespaceAsRoots.
/**
* Adds all {@link WebDirectoryElement}s as well as web-directory with name of given current namespace
* (if not "root" namespace) as possible content roots.
*
* @param psiElement Current element.
* @param namespace Current namespace.
* @param webFacet Module.
* @param set FRS to patch.
*/
public static void addWebDirectoryAndCurrentNamespaceAsRoots(final PsiElement psiElement, final String namespace, final WebFacet webFacet, final FileReferenceSet set) {
final WebDirectoryUtil directoryUtil = WebDirectoryUtil.getWebDirectoryUtil(psiElement.getProject());
set.addCustomization(FileReferenceSet.DEFAULT_PATH_EVALUATOR_OPTION, file -> {
final List<PsiFileSystemItem> basePathRoots = new ArrayList<>();
final List<WebRoot> webRoots = webFacet.getWebRoots(true);
for (final WebRoot webRoot : webRoots) {
final String webRootPath = webRoot.getRelativePath();
final WebDirectoryElement webRootBase = directoryUtil.findWebDirectoryElementByPath(webRootPath, webFacet);
ContainerUtil.addIfNotNull(basePathRoots, webRootBase);
}
if (!Comparing.equal(namespace, StrutsPackage.DEFAULT_NAMESPACE)) {
final WebDirectoryElement packageBase = directoryUtil.findWebDirectoryElementByPath(namespace, webFacet);
ContainerUtil.addIfNotNull(basePathRoots, packageBase);
}
return basePathRoots;
});
}
Aggregations