1 19 20 package org.netbeans.modules.web.project; 21 22 import java.io.IOException ; 23 import java.util.Collection ; 24 import org.netbeans.api.project.Project; 25 import org.netbeans.modules.web.project.spi.WebProjectImplementationFactory; 26 import org.netbeans.spi.project.support.ant.AntBasedProjectType; 27 import org.netbeans.spi.project.support.ant.AntProjectHelper; 28 import org.openide.util.Lookup; 29 30 public final class WebProjectType implements AntBasedProjectType { 31 32 public static final String TYPE = "org.netbeans.modules.web.project"; 33 private static final String PROJECT_CONFIGURATION_NAME = "data"; 34 public static final String PROJECT_CONFIGURATION_NAMESPACE = "http://www.netbeans.org/ns/web-project/3"; 35 private static final String PRIVATE_CONFIGURATION_NAME = "data"; 36 private static final String PRIVATE_CONFIGURATION_NAMESPACE = "http://www.netbeans.org/ns/web-project-private/1"; 37 38 public static final String [] PROJECT_CONFIGURATION_NAMESPACE_LIST = 39 {"http://www.netbeans.org/ns/web-project/1", 40 "http://www.netbeans.org/ns/web-project/2", 41 "http://www.netbeans.org/ns/web-project/3"}; 42 43 44 public WebProjectType() {} 45 46 public String getType() { 47 return TYPE; 48 } 49 50 public Project createProject(AntProjectHelper helper) throws IOException { 51 for(WebProjectImplementationFactory factory : getProjectFactories()) { 52 if (factory.acceptProject(helper)) { 53 return factory.createProject(helper); 55 } 56 } 57 return new WebProject(helper); 58 } 59 60 public String getPrimaryConfigurationDataElementName(boolean shared) { 61 return shared ? PROJECT_CONFIGURATION_NAME : PRIVATE_CONFIGURATION_NAME; 62 } 63 64 public String getPrimaryConfigurationDataElementNamespace(boolean shared) { 65 return shared ? PROJECT_CONFIGURATION_NAMESPACE : PRIVATE_CONFIGURATION_NAMESPACE; 66 } 67 68 private Collection <WebProjectImplementationFactory> getProjectFactories() { 69 return Lookup.getDefault().lookup(new Lookup.Template(WebProjectImplementationFactory.class)).allInstances(); 70 } 71 } 72 | Popular Tags |