package net.sf.minuteProject.application;
import net.sf.minuteProject.configuration.bean.AbstractConfiguration;
import net.sf.minuteProject.configuration.bean.AbstractConfigurationRoot;
import net.sf.minuteProject.configuration.bean.Target;
import net.sf.minuteProject.configuration.bean.Template;
import net.sf.minuteProject.exception.MinuteProjectException;
/**
* @author Florian Adler
*
*/
public interface Generator {
public static final String GENERATOR_TARGET_RULES = "net/sf/minuteProject/configuration/generator-config-targetSet-rules.xml";
/**
* Loads a configuration to get a configuration
* @param configuration
* @param rules
* @return AbstractConfiguration
*/
public AbstractConfiguration load (String configuration, String rules) throws Exception;
/**
* Loads a target via its refname into a root element
* @param abstractConfigurationRoot
* @param targetRefname
* @throws Exception
*/
public void loadTarget (AbstractConfigurationRoot abstractConfigurationRoot, Target target) throws Exception;
/**
* generate the targets template artifacts
* @param target
*/
public void generate (Target target) throws Exception;
/**
* generate the template's artifacts
* @param template
*/
public void generate (Template template) throws MinuteProjectException;
public void getSolutionPortfolio (String solutionPortfolioFileName);
}