1 /******************************************************************************* 2 * Copyright (c) 2007, 2014 Massimiliano Ziccardi 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 *******************************************************************************/ 16 package it.jnrpe.server; 17 18 import java.io.File; 19 20 /** 21 * Factory of configuration object. 22 * 23 * @author Massimiliano Ziccardi 24 */ 25 final class JNRPEConfigurationFactory { 26 27 /** 28 * Default constructor. 29 */ 30 private JNRPEConfigurationFactory() { 31 32 } 33 34 /** 35 * Creates a configuration object from the passed in configuration file. 36 * 37 * @param configurationFilePath 38 * Path to the configuration file 39 * @return The configuration object 40 * @throws ConfigurationException 41 * - 42 */ 43 public static JNRPEConfiguration createConfiguration( 44 final String configurationFilePath) throws ConfigurationException { 45 JNRPEConfiguration conf = null; 46 47 if (configurationFilePath.toLowerCase().endsWith(".conf") 48 || configurationFilePath.toLowerCase().endsWith(".ini")) { 49 conf = new IniJNRPEConfiguration(); 50 } else if (configurationFilePath.toLowerCase().endsWith(".xml")) { 51 conf = new XmlJNRPEConfiguration(); 52 } 53 54 if (conf == null) { 55 throw new ConfigurationException( 56 "Config file name must end with either '.ini' " 57 + "(ini file) or '.xml' (xml file)"); 58 } 59 60 conf.load(new File(configurationFilePath)); 61 62 return conf; 63 } 64 }