Merge "Initial implementation of the ClusteredDataStore"
[controller.git] / opendaylight / config / netty-threadgroup-config / src / main / java / org / opendaylight / controller / config / yang / netty / threadgroup / NettyThreadgroupModule.java
1 /**
2 * Generated file
3
4 * Generated from: yang module name: nsos-threadpool  yang module local name: netty-threadgroup-fixed
5 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
6 * Generated at: Fri Nov 08 08:31:45 CET 2013
7 *
8 * Do not modify this file unless it is present under src/main directory
9 */
10 package org.opendaylight.controller.config.yang.netty.threadgroup;
11
12 import com.google.common.base.Preconditions;
13 import io.netty.channel.nio.NioEventLoopGroup;
14
15 /**
16 *
17 */
18 public final class NettyThreadgroupModule extends org.opendaylight.controller.config.yang.netty.threadgroup.AbstractNettyThreadgroupModule
19 {
20     public NettyThreadgroupModule(org.opendaylight.controller.config.api.ModuleIdentifier name, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
21         super(name, dependencyResolver);
22     }
23
24     public NettyThreadgroupModule(org.opendaylight.controller.config.api.ModuleIdentifier name, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, NettyThreadgroupModule oldModule, java.lang.AutoCloseable oldInstance) {
25         super(name, dependencyResolver, oldModule, oldInstance);
26     }
27
28     @Override
29     public void validate(){
30         if(getThreadCount()!=null) {
31             Preconditions.checkArgument(getThreadCount() > 0, "Thread count cannot be < 0");
32         }
33     }
34
35     @Override
36     public java.lang.AutoCloseable createInstance() {
37         return getThreadCount()==null ? new NioEventLoopGroupCloseable() : new NioEventLoopGroupCloseable(getThreadCount());
38     }
39
40
41     private class NioEventLoopGroupCloseable extends NioEventLoopGroup implements AutoCloseable {
42
43
44         public NioEventLoopGroupCloseable(int threadCount) {
45             super(threadCount);
46         }
47
48         public NioEventLoopGroupCloseable() {
49             super();
50         }
51
52         @Override
53         public void close() throws Exception {
54             shutdownGracefully();
55         }
56     }
57 }