--- /dev/null
+package org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule;
+
+import javax.annotation.concurrent.Immutable;
+
+import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
+import org.opendaylight.neutron.spi.NeutronSecurityRule;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.Rule;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.RuleBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstance;
+
+import com.google.common.collect.ImmutableList;
+
+@Immutable
+public class SingleClassifierRule {
+
+ private final ClassifierInstance classifierInstance;
+ private final ClassifierRef classifierRef;
+ private final Rule rule;
+
+ public SingleClassifierRule(NeutronSecurityRule secRule, int ruleOrder) {
+ classifierInstance = SecRuleEntityDecoder.getClassifierInstance(secRule);
+ classifierRef = SecRuleEntityDecoder.getClassifierRef(secRule);
+ rule = createRule(ruleOrder, secRule);
+ }
+
+ private Rule createRule(int order, NeutronSecurityRule secRule) {
+ return new RuleBuilder().setName(SecRuleNameDecoder.getRuleName(secRule))
+ .setOrder(order)
+ .setActionRef(MappingUtils.ACTION_REF_ALLOW)
+ .setClassifierRef(ImmutableList.of(classifierRef))
+ .build();
+ }
+
+ public ClassifierInstance getClassifierInstance() {
+ return classifierInstance;
+ }
+
+ public ClassifierRef getClassifierRef() {
+ return classifierRef;
+ }
+
+ public Rule getRule() {
+ return rule;
+ }
+
+}