package org.jboss.windup.reporting.model.rule;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Adjacency;
import com.tinkerpop.frames.Property;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
import org.jboss.windup.graph.model.WindupVertexFrame;
/**
* Represents a rule provider
*
* @author <a href="mailto:dklingenberg@gmail.com">David Klingenberg</a>
*/
@TypeValue(RuleProviderModel.TYPE)
public interface RuleProviderModel extends WindupVertexFrame
{
String TYPE = "RuleProvider";
String RULE_PROVIDER_ID = "ruleProviderID";
String EXECUTED_RULES = "rules";
@Property(RULE_PROVIDER_ID)
String getRuleProviderID();
@Property(RULE_PROVIDER_ID)
RuleProviderModel setRuleProviderID(String id);
@Adjacency(label = EXECUTED_RULES, direction = Direction.OUT)
Iterable<RuleExecutionModel> getRules();
@Adjacency(label = EXECUTED_RULES, direction = Direction.OUT)
RuleProviderModel addRule(RuleExecutionModel rule);
}