Add INFO.yaml for GBP
[groupbasedpolicy.git] / neutron-ovsdb / src / main / java / org / opendaylight / groupbasedpolicy / neutron / ovsdb / util / NeutronOvsdbIidFactory.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3  *
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
7  */
8 package org.opendaylight.groupbasedpolicy.neutron.ovsdb.util;
9
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.UniqueId;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.Mappings;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.GbpByNeutronMappings;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.NeutronByGbpMappings;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.EndpointsByPorts;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.endpoints.by.ports.EndpointByPort;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.endpoints.by.ports.EndpointByPortKey;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.ExternalGatewaysAsL3Endpoints;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.neutron.by.gbp.mappings.external.gateways.as.l3.endpoints.ExternalGatewayAsL3Endpoint;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
21 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
23 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
24 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
25 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
26 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
27 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
28 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
29
30 public final class NeutronOvsdbIidFactory {
31     private NeutronOvsdbIidFactory() {
32     }
33
34     public static InstanceIdentifier<Topology> topologyIid(TopologyId ovsdbTopologyId) {
35         return InstanceIdentifier.create(NetworkTopology.class)
36             .child(Topology.class, new TopologyKey(ovsdbTopologyId));
37     }
38
39     public static InstanceIdentifier<OvsdbNodeAugmentation> ovsdbNodeAugmentationIid(TopologyId ovsdbTopologyId) {
40         return topologyIid(ovsdbTopologyId)
41             .child(Node.class)
42             .augmentation(OvsdbNodeAugmentation.class);
43     }
44
45     public static InstanceIdentifier<ExternalGatewayAsL3Endpoint> neutronGbpExternalGatewayIidWildcard() {
46         return InstanceIdentifier.builder(Mappings.class)
47             .child(NeutronByGbpMappings.class)
48             .child(ExternalGatewaysAsL3Endpoints.class)
49             .child(ExternalGatewayAsL3Endpoint.class)
50             .build();
51     }
52
53     public static InstanceIdentifier<EndpointByPort> endpointByPortIid(UniqueId portId) {
54         return InstanceIdentifier.builder(Mappings.class)
55             .child(GbpByNeutronMappings.class)
56             .child(EndpointsByPorts.class)
57             .child(EndpointByPort.class, new EndpointByPortKey(portId))
58             .build();
59     }
60
61     public static InstanceIdentifier<NeutronByGbpMappings> neutronGbpMappingsIidWildcard() {
62         return InstanceIdentifier.builder(Mappings.class).child(NeutronByGbpMappings.class).build();
63     }
64
65     public static InstanceIdentifier<Node> nodeIid(TopologyId ovsdbTopologyId, NodeId nodeId) {
66         return topologyIid(ovsdbTopologyId).child(Node.class, new NodeKey(nodeId));
67     }
68
69     @SuppressWarnings("checkstyle:LineLength") // Longer lines in this method are caused by long package names.
70     public static InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node> nodeIid(
71             org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId nodeId) {
72         return InstanceIdentifier.builder(Nodes.class)
73             .child(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node.class,
74                     new org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey(nodeId))
75             .build();
76     }
77 }