logback-config: final parameters
[controller.git] / opendaylight / config / logback-config / src / main / java / org / opendaylight / controller / config / yang / logback / config / LogbackModule.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 by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
13  * Generated at: Wed Jul 17 15:26:45 CEST 2013
14  *
15  * Do not modifiy this file unless it is present under src/main directory
16  */
17 package org.opendaylight.controller.config.yang.logback.config;
18
19 import com.google.common.collect.Sets;
20 import java.util.Set;
21 import org.opendaylight.controller.config.api.JmxAttribute;
22 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
23
24 /**
25 *
26 */
27 public final class LogbackModule extends org.opendaylight.controller.config.yang.logback.config.AbstractLogbackModule {
28
29     public LogbackModule(final org.opendaylight.controller.config.api.ModuleIdentifier name,
30             final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
31         super(name, dependencyResolver);
32     }
33
34     public LogbackModule(final org.opendaylight.controller.config.api.ModuleIdentifier name,
35             final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
36             final org.opendaylight.controller.config.yang.logback.config.AbstractLogbackModule oldModule,
37             final java.lang.AutoCloseable oldInstance) {
38         super(name, dependencyResolver, oldModule, oldInstance);
39     }
40
41     @Override
42     public void validate() {
43         super.validate();
44         Set<String> appenderNames = Sets.newHashSet();
45         validateRollingObjects(appenderNames);
46         validateConsoleObjects(appenderNames);
47         validateFileObjects(appenderNames);
48         validateLoggersObjects(appenderNames);
49     }
50
51     private void validateLoggersObjects(final Set<String> appenderNames) {
52         JmxAttributeValidationException.checkNotNull(getLoggerTO(), loggersJmxAttribute);
53
54         for (LoggerTO loggerToValidate : getLoggerTO()) {
55             JmxAttributeValidationException.checkNotNull(loggerToValidate.getLoggerName(), "LoggerName is null",
56                     loggersJmxAttribute);
57             JmxAttributeValidationException.checkNotNull(loggerToValidate.getLevel(), "Level is null",
58                     loggersJmxAttribute);
59             JmxAttributeValidationException.checkCondition(!loggerToValidate.getLoggerName().isEmpty(),
60                     "LoggerName needs to be set", loggersJmxAttribute);
61             JmxAttributeValidationException.checkCondition(!loggerToValidate.getLevel().isEmpty(),
62                     "Level needs to be set", loggersJmxAttribute);
63             if (loggerToValidate.getAppenders() != null) {
64                 for (String appenderName : loggerToValidate.getAppenders()) {
65                     JmxAttributeValidationException.checkCondition(appenderNames.contains(appenderName), "Appender "
66                             + appenderName + " referenced by logger " + loggerToValidate.getLoggerName()
67                             + " not present in configuration, present appenders: " + appenderNames, loggersJmxAttribute);
68                 }
69             }
70
71         }
72     }
73
74     private void validateConsoleObjects(final Set<String> appenderNames) {
75
76         JmxAttributeValidationException.checkNotNull(getConsoleAppenderTO(), consoleAppendersJmxAttribute);
77         for (ConsoleAppenderTO object : getConsoleAppenderTO()) {
78             JmxAttributeValidationException.checkNotNull(object.getEncoderPattern(), "EncoderPattern is null",
79                     consoleAppendersJmxAttribute);
80
81             validateAppenderName(appenderNames, object.getName(), consoleAppendersJmxAttribute);
82
83             JmxAttributeValidationException.checkNotNull(object.getThresholdFilter(), "Filterlevel is null",
84                     consoleAppendersJmxAttribute);
85         }
86     }
87
88     private void validateFileObjects(final Set<String> appenderNames) {
89         JmxAttributeValidationException.checkNotNull(getFileAppenderTO(), fileAppendersJmxAttribute);
90         for (FileAppenderTO object : getFileAppenderTO()) {
91             JmxAttributeValidationException.checkNotNull(object.getEncoderPattern(), "EncoderPattern is null",
92                     fileAppendersJmxAttribute);
93
94             validateAppenderName(appenderNames, object.getName(), fileAppendersJmxAttribute);
95
96             JmxAttributeValidationException.checkNotNull(object.getFileName(), "FileName is null",
97                     fileAppendersJmxAttribute);
98             JmxAttributeValidationException.checkCondition(!object.getEncoderPattern().isEmpty(),
99                     "EncoderPattern needs to be set", fileAppendersJmxAttribute);
100             JmxAttributeValidationException.checkCondition(!object.getFileName().isEmpty(), "FileName needs to be set",
101                     fileAppendersJmxAttribute);
102
103         }
104     }
105
106     private void validateRollingObjects(final Set<String> appenderNames) {
107
108         JmxAttributeValidationException.checkNotNull(getRollingFileAppenderTO(), rollingAppendersJmxAttribute);
109         for (RollingFileAppenderTO object : getRollingFileAppenderTO()) {
110             JmxAttributeValidationException.checkNotNull(object.getEncoderPattern(), "EncoderPattern is null",
111                     rollingAppendersJmxAttribute);
112
113             validateAppenderName(appenderNames, object.getName(), rollingAppendersJmxAttribute);
114
115             JmxAttributeValidationException.checkNotNull(object.getFileName(), "FileName is null",
116                     rollingAppendersJmxAttribute);
117
118             JmxAttributeValidationException.checkNotNull(object.getFileNamePattern(), "FileNamePattern is null",
119                     rollingAppendersJmxAttribute);
120             JmxAttributeValidationException.checkNotNull(object.getRollingPolicyType(), "RollingPolicyType is null",
121                     rollingAppendersJmxAttribute);
122             JmxAttributeValidationException.checkCondition(!object.getFileNamePattern().isEmpty(),
123                     "FileNamePattern is not set", rollingAppendersJmxAttribute);
124             JmxAttributeValidationException.checkCondition(!object.getRollingPolicyType().isEmpty(),
125                     "RollingPolicyType is not set", rollingAppendersJmxAttribute);
126             JmxAttributeValidationException.checkCondition(
127                     (object.getRollingPolicyType().equals("FixedWindowRollingPolicy") || object.getRollingPolicyType()
128                             .equals("TimeBasedRollingPolicy")), object.getRollingPolicyType()
129                             + " RollingPolicyType is not supported", rollingAppendersJmxAttribute);
130
131             if (object.getRollingPolicyType().equals("FixedWindowRollingPolicy")) {
132                 JmxAttributeValidationException.checkNotNull(object.getMinIndex(), "MinIndex is null",
133                         rollingAppendersJmxAttribute);
134                 JmxAttributeValidationException.checkNotNull(object.getMaxIndex(), "MaxIndex is null",
135                         rollingAppendersJmxAttribute);
136             } else if (object.getRollingPolicyType().equals("TimeBasedRollingPolicy")) {
137                 JmxAttributeValidationException.checkNotNull(object.getMaxHistory(), "MaxHistory is null",
138                         rollingAppendersJmxAttribute);
139             }
140             JmxAttributeValidationException.checkNotNull(object.getMaxFileSize(), "MaxFileSize is null",
141                     rollingAppendersJmxAttribute);
142             JmxAttributeValidationException.checkCondition(!object.getEncoderPattern().isEmpty(),
143                     "EncoderPattern needs to be set", rollingAppendersJmxAttribute);
144             JmxAttributeValidationException.checkCondition(!object.getFileName().isEmpty(), "FileName needs to be set",
145                     rollingAppendersJmxAttribute);
146
147         }
148     }
149
150     private void validateAppenderName(final Set<String> appenderNames, final String appenderName, final JmxAttribute jmxAttribute) {
151         JmxAttributeValidationException.checkNotNull(appenderName, "Name is null", jmxAttribute);
152         JmxAttributeValidationException.checkCondition(appenderNames.contains(appenderName) == false,
153                 "Duplicate appender name " + appenderName, jmxAttribute);
154         appenderNames.add(appenderName);
155         JmxAttributeValidationException.checkCondition(!appenderName.isEmpty(), "Name needs to be set", jmxAttribute);
156     }
157
158     @Override
159     public java.lang.AutoCloseable createInstance() {
160         ContextSetterImpl setter = new ContextSetterImpl(getRootRuntimeBeanRegistratorWrapper());
161
162         setter.updateContext(this);
163
164         return setter;
165     }
166
167 }