Merge "Fixed for bug 1197"
[controller.git] / opendaylight / config / threadpool-config-impl / src / main / java / org / opendaylight / controller / config / yang / threadpool / impl / flexible / FlexibleThreadPoolModule.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
9 /**
10 * Generated file
11
12 * Generated from: yang module name: threadpool-impl-flexible  yang module local name: threadpool-flexible
13 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
14 * Generated at: Sun Dec 01 17:13:32 CET 2013
15 *
16 * Do not modify this file unless it is present under src/main directory
17 */
18 package org.opendaylight.controller.config.yang.threadpool.impl.flexible;
19
20 import com.google.common.base.Optional;
21 import java.util.concurrent.TimeUnit;
22
23 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
24 import org.opendaylight.controller.config.threadpool.util.FlexibleThreadPoolWrapper;
25
26 /**
27 *
28 */
29 public final class FlexibleThreadPoolModule extends org.opendaylight.controller.config.yang.threadpool.impl.flexible.AbstractFlexibleThreadPoolModule
30 {
31
32     public FlexibleThreadPoolModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
33         super(identifier, dependencyResolver);
34     }
35
36     public FlexibleThreadPoolModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, FlexibleThreadPoolModule oldModule, java.lang.AutoCloseable oldInstance) {
37         super(identifier, dependencyResolver, oldModule, oldInstance);
38     }
39
40     @Override
41     public void validate(){
42         super.validate();
43         JmxAttributeValidationException.checkNotNull(getKeepAliveMillis(), keepAliveMillisJmxAttribute);
44         JmxAttributeValidationException.checkCondition(getKeepAliveMillis() > 0, "must be greater than zero",
45                 keepAliveMillisJmxAttribute);
46
47         JmxAttributeValidationException.checkNotNull(getMinThreadCount(), minThreadCountJmxAttribute);
48         JmxAttributeValidationException.checkCondition(getMinThreadCount() > 0, "must be greater than zero",
49                 minThreadCountJmxAttribute);
50
51         JmxAttributeValidationException.checkNotNull(getMaxThreadCount(), maxThreadCountJmxAttribute);
52         JmxAttributeValidationException.checkCondition(getMaxThreadCount() > 0, "must be greater than zero",
53                 maxThreadCountJmxAttribute);
54
55         if(getQueueCapacity() != null) {
56             JmxAttributeValidationException.checkCondition(getQueueCapacity() > 0, "Queue capacity cannot be < 1", queueCapacityJmxAttribute);
57         }
58     }
59
60     @Override
61     public java.lang.AutoCloseable createInstance() {
62         return new FlexibleThreadPoolWrapper(getMinThreadCount(), getMaxThreadCount(), getKeepAliveMillis(),
63                 TimeUnit.MILLISECONDS, getThreadFactoryDependency(), Optional.fromNullable(getQueueCapacity()));
64     }
65 }