2 * Copyright (c) 2015 IBM Corporation and others. 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.neutron.transcriber;
11 import java.util.List;
13 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
14 import org.opendaylight.neutron.spi.INeutronMeteringLabelCRUD;
15 import org.opendaylight.neutron.spi.NeutronMeteringLabel;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.labels.attributes.MeteringLabels;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.labels.attributes.metering.labels.MeteringLabel;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.labels.attributes.metering.labels.MeteringLabelBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
20 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
21 import org.osgi.framework.BundleContext;
22 import org.osgi.framework.ServiceRegistration;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
26 public class NeutronMeteringLabelInterface extends AbstractNeutronInterface<MeteringLabel, MeteringLabels, NeutronMeteringLabel> implements INeutronMeteringLabelCRUD {
27 private static final Logger LOGGER = LoggerFactory.getLogger(NeutronMeteringLabelInterface.class);
29 NeutronMeteringLabelInterface(ProviderContext providerContext) {
30 super(providerContext);
33 // IfNBMeteringLabelCRUD methods
36 public boolean neutronMeteringLabelExists(String uuid) {
41 public NeutronMeteringLabel getNeutronMeteringLabel(String uuid) {
46 protected List<MeteringLabel> getDataObjectList(MeteringLabels labels) {
47 return labels.getMeteringLabel();
51 public List<NeutronMeteringLabel> getAllNeutronMeteringLabels() {
56 public boolean addNeutronMeteringLabel(NeutronMeteringLabel input) {
61 public boolean removeNeutronMeteringLabel(String uuid) {
66 public boolean updateNeutronMeteringLabel(String uuid, NeutronMeteringLabel delta) {
67 return update(uuid, delta);
71 public boolean neutronMeteringLabelInUse(String netUUID) {
72 return !exists(netUUID);
76 protected InstanceIdentifier<MeteringLabel> createInstanceIdentifier(
78 return InstanceIdentifier.create(Neutron.class)
79 .child(MeteringLabels.class)
80 .child(MeteringLabel.class,item.getKey());
84 protected InstanceIdentifier<MeteringLabels> createInstanceIdentifier() {
85 return InstanceIdentifier.create(Neutron.class)
86 .child(MeteringLabels.class);
90 protected MeteringLabel toMd(NeutronMeteringLabel meteringLabel) {
91 final MeteringLabelBuilder meteringLabelBuilder = new MeteringLabelBuilder();
92 if (meteringLabel.getMeteringLabelName() != null) {
93 meteringLabelBuilder.setName(meteringLabel.getMeteringLabelName());
95 if (meteringLabel.getMeteringLabelShared() != null) {
96 meteringLabelBuilder.setShared(meteringLabel.getMeteringLabelShared());
98 if (meteringLabel.getTenantID() != null) {
99 meteringLabelBuilder.setTenantId(toUuid(meteringLabel.getTenantID()));
101 if (meteringLabel.getID() != null) {
102 meteringLabelBuilder.setUuid(toUuid(meteringLabel.getID()));
104 return meteringLabelBuilder.build();
107 protected NeutronMeteringLabel fromMd(MeteringLabel label) {
108 final NeutronMeteringLabel answer = new NeutronMeteringLabel();
109 if (label.getName() != null) {
110 answer.setMeteringLabelName(label.getName());
112 if (label.isShared() != null) {
113 answer.setMeteringLabelShared(label.isShared());
115 if (label.getTenantId() != null) {
116 answer.setTenantID(label.getTenantId());
118 if (label.getUuid() != null) {
119 answer.setID(label.getUuid().getValue());
125 protected MeteringLabel toMd(String uuid) {
126 final MeteringLabelBuilder meteringLabelBuilder = new MeteringLabelBuilder();
127 meteringLabelBuilder.setUuid(toUuid(uuid));
128 return meteringLabelBuilder.build();
131 public static void registerNewInterface(BundleContext context,
132 ProviderContext providerContext,
133 List<ServiceRegistration<?>> registrations) {
134 final NeutronMeteringLabelInterface neutronMeteringLabelInterface = new NeutronMeteringLabelInterface(providerContext);
135 final ServiceRegistration<INeutronMeteringLabelCRUD> neutronMeteringLabelInterfaceRegistration = context.registerService(INeutronMeteringLabelCRUD.class, neutronMeteringLabelInterface, null);
136 if(neutronMeteringLabelInterfaceRegistration != null) {
137 registrations.add(neutronMeteringLabelInterfaceRegistration);