/plugin-module-codegen-maven-client/src/main/java/com/atlassian/maven/plugins/amps/codegen/prompter/common/moduletype/ModuleTypePrompter.java

https://bitbucket.org/mmeinhold/amps · Java · 43 lines · 30 code · 10 blank · 3 comment · 0 complexity · 580f10b14bc3c9b82da1069eb8ed44fd MD5 · raw file

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