2 * Copyright (c) 2016 Cisco Systems, Inc. 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
8 package org.opendaylight.protocol.pcep.auto.bandwidth.extension;
10 import com.google.common.base.MoreObjects;
11 import java.util.ArrayList;
12 import java.util.List;
13 import org.kohsuke.MetaInfServices;
14 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
15 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext;
16 import org.opendaylight.protocol.pcep.spi.pojo.AbstractPCEPExtensionProviderActivator;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev181109.bandwidth.usage.object.BandwidthUsage;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.Pcrpt;
19 import org.opendaylight.yangtools.concepts.Registration;
21 @MetaInfServices(value = PCEPExtensionProviderActivator.class)
22 public class Activator extends AbstractPCEPExtensionProviderActivator {
23 private final int bandwidthUsageObjectType;
29 public Activator(final int bandwidthUsageObjectType) {
30 this.bandwidthUsageObjectType = bandwidthUsageObjectType;
34 protected List<Registration> startImpl(final PCEPExtensionProviderContext context) {
35 final List<Registration> regs = new ArrayList<>();
37 final BandwidthUsageObjectCodec bandwidthUsageObjectCodec =
38 new BandwidthUsageObjectCodec(bandwidthUsageObjectType);
39 regs.add(context.registerObjectParser(bandwidthUsageObjectCodec));
40 regs.add(context.registerObjectSerializer(BandwidthUsage.class, bandwidthUsageObjectCodec));
42 final PcRptMessageCodec pcRptMessageCodec = new PcRptMessageCodec(context.getObjectHandlerRegistry());
43 regs.add(context.registerMessageParser(PcRptMessageCodec.TYPE, pcRptMessageCodec));
44 regs.add(context.registerMessageSerializer(Pcrpt.class, pcRptMessageCodec));
50 public String toString() {
51 return MoreObjects.toStringHelper(this).add("bandwithUsage", bandwidthUsageObjectType).toString();