X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=transcriber%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fneutron%2Ftranscriber%2FNeutronMeteringLabelRuleInterface.java;h=d9affc2d2657d963a8b2b93e7c51a41e89d38e55;hb=03710d816e00e588374a9460df935f4f3442bb3a;hp=bcaa7ca2ee7784ae50e9e6b5ce93046194cc1412;hpb=6905352af6db156af023023b97221b72c84270ef;p=neutron.git diff --git a/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronMeteringLabelRuleInterface.java b/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronMeteringLabelRuleInterface.java index bcaa7ca2e..d9affc2d2 100644 --- a/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronMeteringLabelRuleInterface.java +++ b/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronMeteringLabelRuleInterface.java @@ -5,159 +5,73 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.neutron.transcriber; -import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Map.Entry; -import java.util.Set; - -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; +import javax.inject.Inject; +import javax.inject.Singleton; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.neutron.spi.INeutronMeteringLabelRuleCRUD; import org.opendaylight.neutron.spi.NeutronMeteringLabelRule; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix; -import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionBase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionEgress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.DirectionIngress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; +import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.NeutronUtils.DirectionMapper; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.MeteringRules; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.metering.rules.MeteringRule; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.metering.rules.MeteringRuleBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.ImmutableBiMap; +import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.rules.attributes.metering.rules.MeteringRuleKey; +import org.ops4j.pax.cdi.api.OsgiServiceProvider; -public class NeutronMeteringLabelRuleInterface extends AbstractNeutronInterface +@Singleton +@OsgiServiceProvider(classes = INeutronMeteringLabelRuleCRUD.class) +public final class NeutronMeteringLabelRuleInterface + extends AbstractNeutronInterface implements INeutronMeteringLabelRuleCRUD { - private static final Logger LOGGER = LoggerFactory.getLogger(NeutronMeteringLabelRuleInterface.class); - private static final ImmutableBiMap,String> DIRECTION_MAP - = new ImmutableBiMap.Builder,String>() - .put(DirectionEgress.class,"egress") - .put(DirectionIngress.class,"ingress") - .build(); - - - NeutronMeteringLabelRuleInterface(ProviderContext providerContext) { - super(providerContext); + @Inject + public NeutronMeteringLabelRuleInterface(DataBroker db) { + super(MeteringRuleBuilder.class, db); } // IfNBMeteringLabelRuleCRUD methods - - @Override - public boolean neutronMeteringLabelRuleExists(String uuid) { - return exists(uuid); - } - - @Override - public NeutronMeteringLabelRule getNeutronMeteringLabelRule(String uuid) { - return get(uuid); - } - @Override protected List getDataObjectList(MeteringRules rules) { return rules.getMeteringRule(); } - @Override - public List getAllNeutronMeteringLabelRules() { - return getAll(); - } - - @Override - public boolean addNeutronMeteringLabelRule(NeutronMeteringLabelRule input) { - return add(input); - } - - @Override - public boolean removeNeutronMeteringLabelRule(String uuid) { - return remove(uuid); - } - - @Override - public boolean updateNeutronMeteringLabelRule(String uuid, NeutronMeteringLabelRule delta) { - return update(uuid, delta); - } - - @Override - public boolean neutronMeteringLabelRuleInUse(String netUUID) { - return !exists(netUUID); - } - - @Override - protected InstanceIdentifier createInstanceIdentifier(MeteringRule item) { - return InstanceIdentifier.create(Neutron.class) - .child(MeteringRules.class) - .child(MeteringRule.class, item.getKey()); - } - - @Override - protected InstanceIdentifier createInstanceIdentifier() { - return InstanceIdentifier.create(Neutron.class) - .child(MeteringRules.class); - } - @Override protected MeteringRule toMd(NeutronMeteringLabelRule meteringLabelRule) { - MeteringRuleBuilder meteringRuleBuilder = new MeteringRuleBuilder(); - if (meteringLabelRule.getID() != null) { - meteringRuleBuilder.setId(toUuid(meteringLabelRule.getID())); - } + final MeteringRuleBuilder meteringRuleBuilder = new MeteringRuleBuilder(); + toMdIds(meteringLabelRule, meteringRuleBuilder); if (meteringLabelRule.getMeteringLabelRuleLabelID() != null) { meteringRuleBuilder.setMeteringLabelId(toUuid(meteringLabelRule.getMeteringLabelRuleLabelID())); } if (meteringLabelRule.getMeteringLabelRuleDirection() != null) { - ImmutableBiMap> mapper = - DIRECTION_MAP.inverse(); - meteringRuleBuilder.setDirection((Class) mapper.get(meteringLabelRule.getMeteringLabelRuleDirection())); + meteringRuleBuilder.setDirection( + DirectionMapper.get(meteringLabelRule.getMeteringLabelRuleDirection())); } - if (meteringLabelRule.getMeteringLabelRuleRemoteIPPrefix() != null) { - IpPrefix ipPrefix = new IpPrefix(meteringLabelRule.getMeteringLabelRuleRemoteIPPrefix().toCharArray()); + if (meteringLabelRule.getMeteringLabelRuleRemoteIpPrefix() != null) { + final IpPrefix ipPrefix = new IpPrefix( + meteringLabelRule.getMeteringLabelRuleRemoteIpPrefix().toCharArray()); meteringRuleBuilder.setRemoteIpPrefix(ipPrefix); } meteringRuleBuilder.setExcluded(meteringLabelRule.getMeteringLabelRuleExcluded()); return meteringRuleBuilder.build(); } + @Override protected NeutronMeteringLabelRule fromMd(MeteringRule rule) { - NeutronMeteringLabelRule answer = new NeutronMeteringLabelRule(); - if (rule.getId() != null) { - answer.setID(rule.getId().getValue()); - } + final NeutronMeteringLabelRule answer = new NeutronMeteringLabelRule(); + fromMdIds(rule, answer); if (rule.getMeteringLabelId() != null) { answer.setMeteringLabelRuleLabelID(rule.getMeteringLabelId().getValue()); } if (rule.getDirection() != null) { - answer.setMeteringLabelRuleDirection( - DIRECTION_MAP.get(rule.getDirection())); + answer.setMeteringLabelRuleDirection(DirectionMapper.getDirectionString(rule.getDirection())); } if (rule.getRemoteIpPrefix() != null) { - answer.setMeteringLabelRuleRemoteIPPrefix(new String(rule.getRemoteIpPrefix().getValue())); + answer.setMeteringLabelRuleRemoteIpPrefix(new String(rule.getRemoteIpPrefix().getValue())); } answer.setMeteringLabelRuleExcluded(rule.isExcluded()); return answer; } - - @Override - protected MeteringRule toMd(String uuid) { - MeteringRuleBuilder meteringRuleBuilder = new MeteringRuleBuilder(); - meteringRuleBuilder.setId((toUuid(uuid))); - return meteringRuleBuilder.build(); - } - - public static void registerNewInterface(BundleContext context, - ProviderContext providerContext, - List> registrations) { - NeutronMeteringLabelRuleInterface neutronMeteringLabelRuleInterface = new NeutronMeteringLabelRuleInterface(providerContext); - ServiceRegistration neutronMeteringLabelRuleInterfaceRegistration = context.registerService(INeutronMeteringLabelRuleCRUD.class, neutronMeteringLabelRuleInterface, null); - if (neutronMeteringLabelRuleInterfaceRegistration != null) { - registrations.add(neutronMeteringLabelRuleInterfaceRegistration); - } - } }