2 * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.config.yang.config.groupbasedpolicy;
11 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
12 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
13 import org.opendaylight.groupbasedpolicy.api.PolicyValidatorRegistry;
14 import org.opendaylight.groupbasedpolicy.location.resolver.LocationResolver;
15 import org.opendaylight.groupbasedpolicy.resolver.ForwardingResolver;
16 import org.opendaylight.groupbasedpolicy.sf.SubjectFeatureDefinitionProvider;
17 import org.opendaylight.groupbasedpolicy.sf.SupportedActionDefinitionListener;
18 import org.opendaylight.groupbasedpolicy.sf.SupportedClassifierDefinitionListener;
20 public class GroupbasedpolicyInstance implements AutoCloseable {
22 private final SubjectFeatureDefinitionProvider sfdp;
23 private final SupportedClassifierDefinitionListener supportedClassifierDefinitionListener;
24 private final SupportedActionDefinitionListener supportedActionDefinitionListener;
25 private final LocationResolver locationResolver;
26 private final ForwardingResolver forwardingResolver;
28 public GroupbasedpolicyInstance(DataBroker dataProvider, PolicyValidatorRegistry validatorRegistry)
29 throws TransactionCommitFailedException {
30 sfdp = new SubjectFeatureDefinitionProvider(dataProvider);
31 supportedClassifierDefinitionListener =
32 new SupportedClassifierDefinitionListener(dataProvider, validatorRegistry);
33 supportedActionDefinitionListener = new SupportedActionDefinitionListener(dataProvider);
34 locationResolver = new LocationResolver(dataProvider);
35 forwardingResolver = new ForwardingResolver(dataProvider);
39 public void close() throws Exception {
41 supportedClassifierDefinitionListener.close();
42 supportedActionDefinitionListener.close();
43 locationResolver.close();
44 forwardingResolver.close();