package org.jboss.windup.graph.service;
import org.jboss.windup.graph.GraphContext;
import org.jboss.windup.graph.model.performance.RuleProviderExecutionStatisticsModel;
import com.tinkerpop.gremlin.java.GremlinPipeline;
import com.tinkerpop.pipes.PipeFunction;
import com.tinkerpop.pipes.util.structures.Pair;
/**
* This service provides useful methods for dealing with {@link RuleProviderExecutionStatisticsModel} Vertices within
* the graph
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*
*/
public class RuleProviderExecutionStatisticsService extends GraphService<RuleProviderExecutionStatisticsModel>
{
public RuleProviderExecutionStatisticsService(GraphContext context)
{
super(context, RuleProviderExecutionStatisticsModel.class);
}
/**
* Return an {@link Iterable} of all RuleProviderExecutionStatisticsModel ordered by Index (ascending)
*/
public Iterable<RuleProviderExecutionStatisticsModel> findAllOrderedByIndex()
{
GremlinPipeline<RuleProviderExecutionStatisticsModel, RuleProviderExecutionStatisticsModel> pipeline = new GremlinPipeline<>(
findAll());
pipeline.order(new PipeFunction<Pair<RuleProviderExecutionStatisticsModel, RuleProviderExecutionStatisticsModel>, Integer>()
{
@Override
public Integer compute(
Pair<RuleProviderExecutionStatisticsModel, RuleProviderExecutionStatisticsModel> argument)
{
return argument.getA().getRuleIndex() - argument.getB().getRuleIndex();
}
});
return pipeline;
}
}