package org.jboss.windup.graph.service;
import org.jboss.windup.graph.GraphContext;
import org.jboss.windup.graph.model.WindupConfigurationModel;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* Helper methods for accessing the WindupConfigurationModel and associated data.
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
public class WindupConfigurationService extends GraphService<WindupConfigurationModel>
{
private static final String ARCHIVES = "archives";
public WindupConfigurationService(GraphContext context)
{
super(context, WindupConfigurationModel.class);
}
public static Path getArchivesPath(final GraphContext graphContext)
{
WindupConfigurationModel cfg = WindupConfigurationService.getConfigurationModel(graphContext);
String windupOutputFolder = cfg.getOutputPath().getFilePath();
return Paths.get(windupOutputFolder, ARCHIVES);
}
/**
* Return the global {@link WindupConfigurationModel} configuration for this execution of Windup.
*/
public static synchronized WindupConfigurationModel getConfigurationModel(GraphContext context)
{
WindupConfigurationModel config = new GraphService<>(context, WindupConfigurationModel.class).getUnique();
if (config == null)
config = new GraphService<>(context, WindupConfigurationModel.class).create();
return config;
}
}