yang model revise: neutron-secgroups.yang
[neutron.git] / model / src / main / java / org / opendaylight / yang / gen / v1 / urn / opendaylight / neutron / constants / rev150712 / NeutronUtils.java
1 /*
2  * Copyright (c) 2016 Intel corporation 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
9 package org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712;
10
11 import com.google.common.collect.ImmutableBiMap;
12
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.FwProtocolBase;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.FwProtocolIcmp;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.FwProtocolTcp;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.FwProtocolUdp;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolBase;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolIcmp;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolIcmpV6;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolHttp;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolHttps;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolTcp;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.constants.rev150712.ProtocolUdp;
24
25
26 public final class NeutronUtils {
27     private NeutronUtils() {
28         throw new UnsupportedOperationException("Utility class should not be instantiated.");
29     }
30
31     // For FWaaS
32     public static class FwProtocolMapper {
33         private FwProtocolMapper() {
34             throw new UnsupportedOperationException("Utility class should not be instantiated.");
35         }
36
37         private static final ImmutableBiMap<String, Class<? extends FwProtocolBase>> MAPPER
38             = new ImmutableBiMap.Builder<String, Class<? extends FwProtocolBase>>()
39             .put("tcp", FwProtocolTcp.class)
40             .put("udp", FwProtocolUdp.class)
41             .put("icmp", FwProtocolIcmp.class)
42             .build();
43
44         public static Class<? extends FwProtocolBase> get(String key) {
45             return MAPPER.get(key);
46         }
47
48         public static String getName(Class<? extends FwProtocolBase> key) {
49             ImmutableBiMap<Class<? extends FwProtocolBase>, String> inverseMapper = MAPPER.inverse();
50             return inverseMapper.get(key);
51         }
52     }
53
54     // For security group
55     public static class ProtocolMapper {
56         private ProtocolMapper() {
57             throw new UnsupportedOperationException("Utility class should not be instantiated.");
58         }
59
60         private static final ImmutableBiMap<String, Class<? extends ProtocolBase>> MAPPER
61             = new ImmutableBiMap.Builder<String, Class<? extends ProtocolBase>>()
62             .put("icmp", ProtocolIcmp.class)
63             .put("tcp", ProtocolTcp.class)
64             .put("udp", ProtocolUdp.class)
65             .put("icmpv6", ProtocolIcmpV6.class)
66             .build();
67
68         public static Class<? extends ProtocolBase> get(String key) {
69             return MAPPER.get(key);
70         }
71
72         public static String getName(Class<? extends ProtocolBase> key) {
73             ImmutableBiMap<Class<? extends ProtocolBase>, String> inverseMapper = MAPPER.inverse();
74             return inverseMapper.get(key);
75         }
76     }
77 }