package org.jboss.windup.project.operation;
import org.jboss.windup.config.GraphRewrite;
import org.jboss.windup.config.operation.iteration.AbstractIterationOperation;
import org.jboss.windup.graph.GraphContext;
import org.jboss.windup.graph.model.FileLocationModel;
import org.jboss.windup.graph.model.ProjectModel;
import org.jboss.windup.graph.service.GraphService;
import org.jboss.windup.reporting.model.OverviewReportLineMessageModel;
import org.ocpsoft.rewrite.config.Rule;
import org.ocpsoft.rewrite.context.EvaluationContext;
/**
* Provides the message that will be reported on the project overview page.
*
* @author <a href="mailto:mbriskar@gmail.com">Matej Briskar</a>
*
*/
public class LineItem extends AbstractIterationOperation<FileLocationModel>
{
private String message;
LineItem(String variable)
{
super(variable);
}
LineItem()
{
super();
}
public static LineItem withMessage(String text)
{
LineItem lineItem = new LineItem();
lineItem.setMessage(text);
return lineItem;
}
@Override
public void perform(GraphRewrite event, EvaluationContext context, FileLocationModel payload)
{
GraphContext graphContext = event.getGraphContext();
GraphService<OverviewReportLineMessageModel> overviewLineService = new GraphService<>(graphContext, OverviewReportLineMessageModel.class);
OverviewReportLineMessageModel overviewLine = overviewLineService.create();
overviewLine.setMessage(message);
ProjectModel projectModel = payload.getFile().getProjectModel();
overviewLine.setProject(projectModel);
overviewLine.setRuleID(((Rule) context.get(Rule.class)).getId());
}
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
}