1 package com.atlassian.maven.plugins.amps.codegen.prompter.common.moduletype;
2
3 import com.atlassian.maven.plugins.amps.codegen.annotations.ModuleCreatorClass;
4 import com.atlassian.maven.plugins.amps.codegen.prompter.AbstractModulePrompter;
5 import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
6 import com.atlassian.plugins.codegen.modules.common.moduletype.ModuleTypeModuleCreator;
7 import com.atlassian.plugins.codegen.modules.common.moduletype.ModuleTypeProperties;
8 import com.atlassian.plugins.codegen.util.ClassnameUtil;
9
10 import org.codehaus.plexus.components.interactivity.Prompter;
11 import org.codehaus.plexus.components.interactivity.PrompterException;
12
13
14
15
16 @ModuleCreatorClass(ModuleTypeModuleCreator.class)
17 public class ModuleTypePrompter extends AbstractModulePrompter<ModuleTypeProperties>
18 {
19
20 public ModuleTypePrompter(Prompter prompter)
21 {
22 super(prompter);
23
24 }
25
26 @Override
27 public ModuleTypeProperties promptForBasicProperties(PluginModuleLocation moduleLocation) throws PrompterException
28 {
29 String interfaceName = promptJavaClassname("Enter Interface name", "MYModule");
30 String interfacePackage = promptJavaPackagename("Enter Interface package", getDefaultBasePackage() + ".modules");
31
32 String className = promptJavaClassname("Enter Class name", interfaceName + "ModuleDescriptor");
33 String packageName = promptJavaPackagename("Enter Package Name", interfacePackage);
34
35 String fqClass = ClassnameUtil.fullyQualifiedName(packageName, className);
36 String fqInterface = ClassnameUtil.fullyQualifiedName(interfacePackage, interfaceName);
37
38 ModuleTypeProperties props = new ModuleTypeProperties(fqClass);
39 props.setFullyQualifiedInterface(fqInterface);
40
41 return props;
42 }
43 }