BUG-47 : switched subobjects to generated source code.
[bgpcep.git] / pcep / impl / src / main / java / org / opendaylight / protocol / pcep / impl / SingletonPCEPProviderContext.java
1 /*
2  * Copyright (c) 2013 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.protocol.pcep.impl;
9
10 import javax.annotation.concurrent.ThreadSafe;
11
12 import org.opendaylight.protocol.pcep.spi.EROSubobjectHandlerRegistry;
13 import org.opendaylight.protocol.pcep.spi.LabelHandlerRegistry;
14 import org.opendaylight.protocol.pcep.spi.MessageHandlerRegistry;
15 import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry;
16 import org.opendaylight.protocol.pcep.spi.PCEPProviderContext;
17 import org.opendaylight.protocol.pcep.spi.RROSubobjectHandlerRegistry;
18 import org.opendaylight.protocol.pcep.spi.TlvHandlerRegistry;
19 import org.opendaylight.protocol.pcep.spi.XROSubobjectHandlerRegistry;
20
21 /**
22  *
23  */
24 @ThreadSafe
25 public final class SingletonPCEPProviderContext implements PCEPProviderContext {
26         private static final class Holder {
27                 private static final PCEPProviderContext INSTANCE;
28
29                 static {
30                         final PCEPProviderContext pc = new SingletonPCEPProviderContext();
31                         new PCEPImplActivator().start(pc);
32                         INSTANCE = pc;
33                 }
34         }
35
36         private final LabelHandlerRegistry labelReg = new SimpleLabelHandlerRegistry();
37         private final MessageHandlerRegistry msgReg = new SimpleMessageHandlerRegistry();
38         private final ObjectHandlerRegistry objReg = new SimpleObjectHandlerRegistry();
39         private final EROSubobjectHandlerRegistry eroSubReg = new SimpleEROSubobjectHandlerFactory();
40         private final RROSubobjectHandlerRegistry rroSubReg = new SimpleRROSubobjectHandlerFactory();
41         private final XROSubobjectHandlerRegistry xroSubReg = new SimpleXROSubobjectHandlerFactory();
42         private final TlvHandlerRegistry tlvReg = new SimpleTlvHandlerRegistry();
43
44         private SingletonPCEPProviderContext() {
45
46         }
47
48         public static PCEPProviderContext getInstance() {
49                 return Holder.INSTANCE;
50         }
51
52         @Override
53         public LabelHandlerRegistry getLabelHandlerRegistry() {
54                 return labelReg;
55         }
56
57         @Override
58         public MessageHandlerRegistry getMessageHandlerRegistry() {
59                 return this.msgReg;
60         }
61
62         @Override
63         public ObjectHandlerRegistry getObjectHandlerRegistry() {
64                 return this.objReg;
65         }
66
67         @Override
68         public EROSubobjectHandlerRegistry getEROSubobjectHandlerRegistry() {
69                 return this.eroSubReg;
70         }
71
72         @Override
73         public RROSubobjectHandlerRegistry getRROSubobjectHandlerRegistry() {
74                 return this.rroSubReg;
75         }
76
77         @Override
78         public XROSubobjectHandlerRegistry getXROSubobjectHandlerRegistry() {
79                 return this.xroSubReg;
80         }
81
82         @Override
83         public TlvHandlerRegistry getTlvHandlerRegistry() {
84                 return this.tlvReg;
85         }
86 }