1   package com.atlassian.maven.plugins.amps.codegen.prompter.common.servlet;
2   
3   import java.util.Map;
4   
5   import com.atlassian.maven.plugins.amps.codegen.annotations.ModuleCreatorClass;
6   import com.atlassian.maven.plugins.amps.codegen.prompter.AbstractModulePrompter;
7   import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
8   import com.atlassian.plugins.codegen.modules.common.servlet.ServletModuleCreator;
9   import com.atlassian.plugins.codegen.modules.common.servlet.ServletProperties;
10  import com.atlassian.plugins.codegen.util.ClassnameUtil;
11  
12  import org.codehaus.plexus.components.interactivity.Prompter;
13  import org.codehaus.plexus.components.interactivity.PrompterException;
14  
15  /**
16   * @since 3.6
17   */
18  @ModuleCreatorClass(ServletModuleCreator.class)
19  public class ServletModulePrompter extends AbstractModulePrompter<ServletProperties>
20  {
21  
22      public ServletModulePrompter(Prompter prompter)
23      {
24          super(prompter);
25  
26      }
27  
28      @Override
29      public ServletProperties promptForBasicProperties(PluginModuleLocation moduleLocation) throws PrompterException
30      {
31          String className = promptJavaClassname("Enter New Classname", "MyServlet");
32          String packageName = promptJavaPackagename("Enter Package Name", getDefaultBasePackage() + ".servlet");
33  
34          return new ServletProperties(ClassnameUtil.fullyQualifiedName(packageName, className));
35      }
36  
37      @Override
38      public void promptForAdvancedProperties(ServletProperties props, PluginModuleLocation moduleLocation) throws PrompterException
39      {
40          props.setUrlPattern(getUrlPatternFromUser("/" + props.getClassId().getName()
41                  .toLowerCase()));
42  
43          Map<String, String> initParams = promptForParams("Add Init-Param?");
44          if (initParams.size() > 0)
45          {
46              props.setInitParams(initParams);
47          }
48      }
49  
50      private String getUrlPatternFromUser(String defaultVal) throws PrompterException
51      {
52          String pattern = promptNotBlank("URL Pattern", defaultVal);
53  
54          return pattern;
55      }
56  
57  }