class ArchetypeGenerateCommand extends AbstractMavenCommand {

    @Override
    public Properties buildUserProperties() {
        final Properties properties = new Properties();

        properties.setProperty(ARCHETYPE_GROUP_ID, archetypeGAV.getGroupId());
        properties.setProperty(ARCHETYPE_ARTIFACT_ID, archetypeGAV.getArtifactId());
        properties.setProperty(ARCHETYPE_VERSION, archetypeGAV.getVersion());
        properties.setProperty(TEMPLATE_GROUP_ID, templateGAV.getGroupId());
        properties.setProperty(TEMPLATE_ARTIFACT_ID, templateGAV.getArtifactId());
        properties.setProperty(TEMPLATE_VERSION, templateGAV.getVersion());
        properties.setProperty(ARCHETYPE_CATALOG, INTERNAL_CATALOG);

        return properties;
    }

    public  ArchetypeGenerateCommand(final String baseDirectory,
                                    final GAV archetypeGAV,
                                    final GAV templateGAV);

}