/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.netbeans.gradle.javaee.web; import java.util.logging.Logger; import org.netbeans.api.project.FileOwnerQuery; import org.netbeans.api.project.Project; import org.netbeans.modules.web.api.webmodule.WebModule; import org.netbeans.modules.web.spi.webmodule.WebModuleFactory; import org.netbeans.modules.web.spi.webmodule.WebModuleProvider; import org.openide.filesystems.FileObject; /** * * @author Ed */ public class GradleWebModuleProvider implements WebModuleProvider { private static final Logger LOGGER = Logger.getLogger(GradleWebModuleProvider.class.getName()); private final WebModuleExtension webExt; private volatile WebModule webModule; public GradleWebModuleProvider(WebModuleExtension webExt) { this.webExt = webExt; } @Override public WebModule findWebModule(FileObject fo) { LOGGER.entering(GradleWebModuleProvider.class.getName(), "findWebModule"); WebModule returnValue = null; if (webExt != null) { Project fileOwner = FileOwnerQuery.getOwner(fo); if (webExt.getProject().equals(fileOwner)) { returnValue = getWebModule(); } } LOGGER.exiting(GradleWebModuleProvider.class.getName(), "findWebModule", returnValue); return returnValue; } private WebModule getWebModule() { if (webModule == null) { initWebModule(); } return webModule; } private synchronized void initWebModule() { if (webModule == null) { webModule = WebModuleFactory.createWebModule(new GradleWebModuleImpl(webExt)); } } }