package org.jboss.windup.reporting.service;
import org.jboss.windup.graph.GraphContext;
import org.jboss.windup.graph.model.resource.FileModel;
import org.jboss.windup.graph.service.GraphService;
import org.jboss.windup.reporting.model.source.SourceReportModel;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.gremlin.java.GremlinPipeline;
/**
*
* This provides helper queries and functions for finding and creating SourceReportModel instances.
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*
*/
public class SourceReportService extends GraphService<SourceReportModel>
{
public SourceReportService(GraphContext context)
{
super(context, SourceReportModel.class);
}
/**
* Find the SourceReportModel instance for this fileModel (this is a 1:1 relationship).
*/
public SourceReportModel getSourceReportForFileModel(FileModel fileModel)
{
GremlinPipeline<Vertex, Vertex> pipeline = new GremlinPipeline<>(fileModel.asVertex());
pipeline.in(SourceReportModel.SOURCE_REPORT_TO_SOURCE_FILE_MODEL);
SourceReportModel result = null;
if (pipeline.hasNext())
{
result = frame(pipeline.next());
}
return result;
}
}