package org.jboss.windup.rules.apps.xml.service; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import org.jboss.windup.graph.GraphContext; import org.jboss.windup.graph.service.GraphService; import org.jboss.windup.reporting.service.ReportService; import org.jboss.windup.rules.apps.xml.model.XsltTransformationModel; import org.jboss.windup.util.exception.WindupException; /** * Contains methods for querying, creating, and deleting {@link XsltTransformationModel} objects. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public class XsltTransformationService extends GraphService<XsltTransformationModel> { public static final String TRANSFORMEDXML_DIR_NAME = "transformedxml"; public XsltTransformationService(GraphContext ctx) { super(ctx, XsltTransformationModel.class); } /** * Gets the path used for the results of XSLT Transforms. */ public Path getTransformedXSLTPath() { ReportService reportService = new ReportService(getGraphContext()); Path outputPath = reportService.getReportDirectory().resolve(TRANSFORMEDXML_DIR_NAME); if (!Files.isDirectory(outputPath)) { try { Files.createDirectories(outputPath); } catch (IOException e) { throw new WindupException("Failed to create output directory at: " + outputPath + " due to: " + e.getMessage(), e); } } return outputPath; } }