/******************************************************************************* * Copyright (c) 2015 Dominik Brämer. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html ******************************************************************************/ package com.blogspot.thedsweb.util; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.logging.Level; import com.blogspot.thedsweb.main.Debug; public class Config { private final ResourceBundle resourceBundle; public Config() throws MalformedURLException { // Load resource Bundle from configuration file path final File file = new File(Database.PATH_TO_CONFIG); final URL[] urls = { file.toURI().toURL() }; final ClassLoader loader = new URLClassLoader(urls); resourceBundle = ResourceBundle.getBundle("yawls", Locale.getDefault(), loader); } public boolean faceDetect() { // Load faceDetect configuration boolean faceDetect; try { faceDetect = resourceBundle.getString("faceDetect") .equalsIgnoreCase("true"); } catch (final MissingResourceException e) { faceDetect = Database.FACE_DETECT; Debug.LOG.log(Level.WARNING, "The face detection is not set. Corrected to: " + faceDetect); } return faceDetect; } public int lowerLimit() { // Load lowerLimit configuration int lowerLimit; try { lowerLimit = Integer.parseInt(resourceBundle .getString("lowerLimit")); } catch (final MissingResourceException e) { lowerLimit = Database.LOWER_LIMIT; Debug.LOG.log(Level.WARNING, "The lower limit is not set. Corrected to: " + lowerLimit); } // Check if value greater zero if (lowerLimit <= 0) { // Set default value lowerLimit = Database.LOWER_LIMIT; Debug.LOG.log(Level.WARNING, "The lower limit must be a value greater zero. Corrected to: " + lowerLimit); } return lowerLimit; } public int upperLimit() { // Load upperLimit configuration int upperLimit; try { upperLimit = Integer.parseInt(resourceBundle .getString("upperLimit")); } catch (final MissingResourceException e) { upperLimit = Database.UPPER_LIMIT; Debug.LOG.log(Level.WARNING, "The upper limit is not set. Corrected to: " + upperLimit); } // Check if value greater zero if (upperLimit <= 0) { // Set default value upperLimit = Database.UPPER_LIMIT; Debug.LOG.log(Level.WARNING, "The upper limit must be a value greater zero. Corrected to: " + upperLimit); } return upperLimit; } public int minIncrease() { // Load minIncrease configuration int minIncrease; try { minIncrease = Integer.parseInt(resourceBundle .getString("minIncrease")); } catch (final MissingResourceException e) { minIncrease = Database.MIN_INCREASE; Debug.LOG.log(Level.WARNING, "The minimum increase is not set. Corrected to: " + minIncrease); } // Check if value greater zero if (minIncrease <= 0) { // Set default value minIncrease = Database.MIN_INCREASE; Debug.LOG.log(Level.WARNING, "The minimum increase must be a value greater zero. Corrected to: " + minIncrease); } return minIncrease; } public int maxIncrease() { // Load maxIncrease configuration int maxIncrease; try { maxIncrease = Integer.parseInt(resourceBundle .getString("maxIncrease")); } catch (final MissingResourceException e) { maxIncrease = Database.MAX_INCREASE; Debug.LOG.log(Level.WARNING, "The maximum increase is not set. Corrected to: " + maxIncrease); } // Check if value greater zero if (maxIncrease <= 0) { // Set default value maxIncrease = Database.MAX_INCREASE; Debug.LOG.log(Level.WARNING, "The maximum increase must be a value greater zero. Corrected to: " + maxIncrease); } return maxIncrease; } public int darkeningThreshold() { // Load darkeningThreshold configuration int darkeningThreshold; try { darkeningThreshold = Integer.parseInt(resourceBundle .getString("darkeningThreshold")); } catch (final MissingResourceException e) { darkeningThreshold = Database.DARKENING_THRESHOLD; Debug.LOG.log(Level.WARNING, "The darkening threshold is not set. Corrected to: " + darkeningThreshold); } // Check if value is between 0 and 100 if (darkeningThreshold < 0 || darkeningThreshold > 100) { // Set default value darkeningThreshold = Database.DARKENING_THRESHOLD; Debug.LOG .log(Level.WARNING, "The darkening threshold must be a value greater zero and smaller 100. Corrected to: " + darkeningThreshold); } return darkeningThreshold; } public int brighteningThreshold() { // Load brighteningThreshold configuration int brighteningThreshold; try { brighteningThreshold = Integer.parseInt(resourceBundle .getString("brighteningThreshold")); } catch (final MissingResourceException e) { brighteningThreshold = Database.BRIGHTENING_THRESHOLD; Debug.LOG.log(Level.WARNING, "The breghtening threshold is not set. Corrected to: " + brighteningThreshold); } // Check if value is between 0 and 100 if (brighteningThreshold < 0 || brighteningThreshold > 100) { // Set default value brighteningThreshold = Database.BRIGHTENING_THRESHOLD; Debug.LOG .log(Level.WARNING, "The brightening threshold must be a value greater zero and smaller 100. Corrected to: " + brighteningThreshold); } return brighteningThreshold; } public int logLevel() { int level; try { level = Integer.parseInt(resourceBundle.getString("logLevel")); } catch (final MissingResourceException e) { level = Database.LOG_LEVEL; Debug.LOG.log(Level.WARNING, "The log level is not set. Corrected to: " + level); } if (level < 0 || level > 3) { level = Database.LOG_LEVEL; Debug.LOG.log(Level.WARNING, "The log level must be a value greater zero and smaller 4. Corrected to: " + level); } return level; } }