1 package org.opendaylight.controller.config.yang.pcep.spi;
4 import org.opendaylight.protocol.pcep.spi.EROSubobjectParser;
5 import org.opendaylight.protocol.pcep.spi.EROSubobjectRegistry;
6 import org.opendaylight.protocol.pcep.spi.EROSubobjectSerializer;
7 import org.opendaylight.protocol.pcep.spi.LabelParser;
8 import org.opendaylight.protocol.pcep.spi.LabelRegistry;
9 import org.opendaylight.protocol.pcep.spi.LabelSerializer;
10 import org.opendaylight.protocol.pcep.spi.MessageParser;
11 import org.opendaylight.protocol.pcep.spi.MessageRegistry;
12 import org.opendaylight.protocol.pcep.spi.MessageSerializer;
13 import org.opendaylight.protocol.pcep.spi.ObjectParser;
14 import org.opendaylight.protocol.pcep.spi.ObjectRegistry;
15 import org.opendaylight.protocol.pcep.spi.ObjectSerializer;
16 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
17 import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext;
18 import org.opendaylight.protocol.pcep.spi.RROSubobjectParser;
19 import org.opendaylight.protocol.pcep.spi.RROSubobjectRegistry;
20 import org.opendaylight.protocol.pcep.spi.RROSubobjectSerializer;
21 import org.opendaylight.protocol.pcep.spi.TlvParser;
22 import org.opendaylight.protocol.pcep.spi.TlvRegistry;
23 import org.opendaylight.protocol.pcep.spi.TlvSerializer;
24 import org.opendaylight.protocol.pcep.spi.VendorInformationObjectRegistry;
25 import org.opendaylight.protocol.pcep.spi.VendorInformationTlvRegistry;
26 import org.opendaylight.protocol.pcep.spi.XROSubobjectParser;
27 import org.opendaylight.protocol.pcep.spi.XROSubobjectRegistry;
28 import org.opendaylight.protocol.pcep.spi.XROSubobjectSerializer;
29 import org.opendaylight.protocol.pcep.spi.pojo.SimplePCEPExtensionProviderContext;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.iana.rev130816.EnterpriseNumber;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Tlv;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.vendor.information.EnterpriseSpecificInformation;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.SubobjectType;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.label.subobject.LabelType;
38 public class ReusablePCEPExtensionProviderContext implements AutoCloseable, PCEPExtensionProviderContext {
39 private final PCEPExtensionProviderContext delegate = new SimplePCEPExtensionProviderContext();
40 private List<PCEPExtensionProviderActivator> currentExtensionDependency;
44 for (final PCEPExtensionProviderActivator e : this.currentExtensionDependency) {
49 public void start(final List<PCEPExtensionProviderActivator> extensionDependency) {
50 for (final PCEPExtensionProviderActivator e : extensionDependency) {
51 e.start(this.delegate);
53 this.currentExtensionDependency = extensionDependency;
56 public void reconfigure(final List<PCEPExtensionProviderActivator> extensionDependency) {
57 // Shutdown old ones first
58 for (final PCEPExtensionProviderActivator e : this.currentExtensionDependency) {
59 if (!extensionDependency.contains(e)) {
64 for (final PCEPExtensionProviderActivator e : extensionDependency) {
65 if (!this.currentExtensionDependency.contains(e)) {
66 e.start(this.delegate);
69 this.currentExtensionDependency = extensionDependency;
73 public LabelRegistry getLabelHandlerRegistry() {
74 return this.delegate.getLabelHandlerRegistry();
78 public MessageRegistry getMessageHandlerRegistry() {
79 return this.delegate.getMessageHandlerRegistry();
83 public ObjectRegistry getObjectHandlerRegistry() {
84 return this.delegate.getObjectHandlerRegistry();
88 public EROSubobjectRegistry getEROSubobjectHandlerRegistry() {
89 return this.delegate.getEROSubobjectHandlerRegistry();
93 public RROSubobjectRegistry getRROSubobjectHandlerRegistry() {
94 return this.delegate.getRROSubobjectHandlerRegistry();
98 public XROSubobjectRegistry getXROSubobjectHandlerRegistry() {
99 return this.delegate.getXROSubobjectHandlerRegistry();
103 public TlvRegistry getTlvHandlerRegistry() {
104 return this.delegate.getTlvHandlerRegistry();
108 public VendorInformationTlvRegistry getVendorInformationTlvRegistry() {
109 return this.delegate.getVendorInformationTlvRegistry();
113 public VendorInformationObjectRegistry getVendorInformationObjectRegistry() {
114 return this.delegate.getVendorInformationObjectRegistry();
118 public AutoCloseable registerLabelSerializer(final Class<? extends LabelType> labelClass, final LabelSerializer serializer) {
119 return this.delegate.registerLabelSerializer(labelClass, serializer);
123 public AutoCloseable registerLabelParser(final int cType, final LabelParser parser) {
124 return this.delegate.registerLabelParser(cType, parser);
128 public AutoCloseable registerEROSubobjectParser(final int subobjectType, final EROSubobjectParser parser) {
129 return this.delegate.registerEROSubobjectParser(subobjectType, parser);
133 public AutoCloseable registerEROSubobjectSerializer(final Class<? extends SubobjectType> subobjectClass,
134 final EROSubobjectSerializer serializer) {
135 return this.delegate.registerEROSubobjectSerializer(subobjectClass, serializer);
139 public AutoCloseable registerMessageParser(final int messageType, final MessageParser parser) {
140 return this.delegate.registerMessageParser(messageType, parser);
144 public AutoCloseable registerMessageSerializer(final Class<? extends Message> msgClass, final MessageSerializer serializer) {
145 return this.delegate.registerMessageSerializer(msgClass, serializer);
149 public AutoCloseable registerObjectParser(final int objectClass, final int objectType, final ObjectParser parser) {
150 return this.delegate.registerObjectParser(objectClass, objectType, parser);
154 public AutoCloseable registerObjectSerializer(final Class<? extends Object> objClass, final ObjectSerializer serializer) {
155 return this.delegate.registerObjectSerializer(objClass, serializer);
159 public AutoCloseable registerRROSubobjectParser(final int subobjectType, final RROSubobjectParser parser) {
160 return this.delegate.registerRROSubobjectParser(subobjectType, parser);
164 public AutoCloseable registerRROSubobjectSerializer(
165 final Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.SubobjectType> subobjectClass,
166 final RROSubobjectSerializer serializer) {
167 return this.delegate.registerRROSubobjectSerializer(subobjectClass, serializer);
171 public AutoCloseable registerTlvSerializer(final Class<? extends Tlv> tlvClass, final TlvSerializer serializer) {
172 return this.delegate.registerTlvSerializer(tlvClass, serializer);
176 public AutoCloseable registerTlvParser(final int tlvType, final TlvParser parser) {
177 return this.delegate.registerTlvParser(tlvType, parser);
181 public AutoCloseable registerVendorInformationTlvSerializer(
182 final Class<? extends EnterpriseSpecificInformation> esInformationClass, final TlvSerializer serializer) {
183 return this.delegate.registerVendorInformationTlvSerializer(esInformationClass, serializer);
187 public AutoCloseable registerVendorInformationTlvParser(final EnterpriseNumber enterpriseNumber, final TlvParser parser) {
188 return this.delegate.registerVendorInformationTlvParser(enterpriseNumber, parser);
192 public AutoCloseable registerXROSubobjectSerializer(final Class<? extends SubobjectType> subobjectClass,
193 final XROSubobjectSerializer serializer) {
194 return this.delegate.registerXROSubobjectSerializer(subobjectClass, serializer);
198 public AutoCloseable registerXROSubobjectParser(final int subobjectType, final XROSubobjectParser parser) {
199 return this.delegate.registerXROSubobjectParser(subobjectType, parser);
203 public AutoCloseable registerVendorInformationObjectSerializer(
204 final Class<? extends EnterpriseSpecificInformation> esInformationClass, final ObjectSerializer serializer) {
205 return this.delegate.registerVendorInformationObjectSerializer(esInformationClass, serializer);
209 public AutoCloseable registerVendorInformationObjectParser(final EnterpriseNumber enterpriseNumber, final ObjectParser parser) {
210 return this.delegate.registerVendorInformationObjectParser(enterpriseNumber, parser);