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