1 package com.atlassian.plugins.codegen.modules;
2
3 import com.atlassian.plugins.codegen.PluginProjectChangeset;
4
5 /**
6 * Implementors of this class do the actual code generation for a specific plugin module.
7 */
8 public interface PluginModuleCreator<T extends PluginModuleProperties>
9 {
10 String getModuleName();
11
12 /**
13 * Returns a {@link PluginProjectChangeset} that describes (but does not perform) all of
14 * the changes required to add this module.
15 */
16 PluginProjectChangeset createModule(T props) throws Exception;
17 }