Merge "BUG-113: introduce Activator and use it"
[bgpcep.git] / bgp / parser-impl / src / main / java / org / opendaylight / protocol / bgp / parser / impl / SingletonProviderContext.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.bgp.parser.impl;
9
10 import org.opendaylight.protocol.bgp.parser.impl.message.open.SimpleCapabilityRegistry;
11 import org.opendaylight.protocol.bgp.parser.impl.message.open.SimpleParameterRegistry;
12 import org.opendaylight.protocol.bgp.parser.impl.message.update.SimpleAttributeRegistry;
13 import org.opendaylight.protocol.bgp.parser.impl.message.update.SimpleNlriRegistry;
14 import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry;
15 import org.opendaylight.protocol.bgp.parser.spi.AttributeRegistry;
16 import org.opendaylight.protocol.bgp.parser.spi.CapabilityRegistry;
17 import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
18 import org.opendaylight.protocol.bgp.parser.spi.NlriRegistry;
19 import org.opendaylight.protocol.bgp.parser.spi.ParameterRegistry;
20 import org.opendaylight.protocol.bgp.parser.spi.ProviderContext;
21 import org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry;
22
23 public final class SingletonProviderContext implements ProviderContext {
24         private static final class Holder {
25                 private static final ProviderContext INSTANCE = new SingletonProviderContext();
26         }
27
28         private SingletonProviderContext() {
29
30         }
31
32         public static ProviderContext getInstance() {
33                 return Holder.INSTANCE;
34         }
35
36         @Override
37         public AddressFamilyRegistry getAddressFamilyRegistry() {
38                 return SimpleAddressFamilyRegistry.getInstance();
39         }
40
41         @Override
42         public AttributeRegistry getAttributeRegistry() {
43                 return SimpleAttributeRegistry.getInstance();
44         }
45
46         @Override
47         public CapabilityRegistry getCapabilityRegistry() {
48                 return SimpleCapabilityRegistry.getInstance();
49         }
50
51         @Override
52         public MessageRegistry getMessageRegistry() {
53                 return SimpleBGPMessageFactory.getInstance();
54         }
55
56         @Override
57         public NlriRegistry getNlriRegistry() {
58                 return SimpleNlriRegistry.getInstance();
59         }
60
61         @Override
62         public ParameterRegistry getParameterRegistry() {
63                 return SimpleParameterRegistry.getInstance();
64         }
65
66         @Override
67         public SubsequentAddressFamilyRegistry getSubsequentAddressFamilyRegistry() {
68                 return SimpleSubsequentAddressFamilyRegistry.getInstance();
69         }
70 }