2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.processors;
\r
11 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
\r
12 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
\r
13 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
\r
14 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
\r
15 import org.opendaylight.groupbasedpolicy.util.DataTreeChangeHandler;
\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.Mappings;
\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.GbpByNeutronMappings;
\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.BaseEndpointsByPorts;
\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPort;
\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;
\r
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
\r
23 public class BaseEndpointByPortListener extends DataTreeChangeHandler<BaseEndpointByPort> implements MappingProvider<Port> {
\r
25 private final PortHandler portHandler;
\r
27 protected BaseEndpointByPortListener(PortHandler portHandler, DataBroker dataProvider) {
\r
28 super(dataProvider);
\r
29 this.portHandler = portHandler;
\r
30 registerDataTreeChangeListener(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
\r
31 InstanceIdentifier.builder(Mappings.class)
\r
32 .child(GbpByNeutronMappings.class)
\r
33 .child(BaseEndpointsByPorts.class)
\r
34 .child(BaseEndpointByPort.class)
\r
39 public InstanceIdentifier<Port> getNeutronDtoIid() {
\r
40 return portHandler.createWildcartedPortIid();
\r
44 public void processCreatedNeutronDto(Port port) {
\r
45 portHandler.processCreated(port);
\r
49 public void processUpdatedNeutronDto(Port original, Port delta) {
\r
50 portHandler.processUpdated(original, delta);
\r
54 public void processDeletedNeutronDto(Port port) {
\r
55 // handled by BaseEndpointByPort removal
\r
59 protected void onWrite(DataObjectModification<BaseEndpointByPort> rootNode,
\r
60 InstanceIdentifier<BaseEndpointByPort> rootIdentifier) {
\r
61 if (rootNode.getDataBefore() == null) {
\r
62 portHandler.processCreated(rootNode.getDataAfter());
\r
67 protected void onDelete(DataObjectModification<BaseEndpointByPort> rootNode,
\r
68 InstanceIdentifier<BaseEndpointByPort> rootIdentifier) {
\r
69 portHandler.processDeleted(rootNode.getDataBefore());
\r
73 protected void onSubtreeModified(DataObjectModification<BaseEndpointByPort> rootNode,
\r
74 InstanceIdentifier<BaseEndpointByPort> rootIdentifier) {
\r
75 // update should not happen
\r