/* * Copyright 2010 Nabeel Mukhtar * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.github.api.v2.services.constant; import java.io.IOException; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; /** * The Class ApplicationConstants. */ public final class ApplicationConstants { /** The Constant APP_CONSTANTS_FILE. */ public static final String APP_CONSTANTS_FILE = "ApplicationConstants.properties"; /** The Constant LOG. */ private static final Logger LOG = Logger.getLogger(ApplicationConstants.class.getCanonicalName()); /** The Constant applicationConstants. */ private static final Properties applicationConstants = new Properties(); static { try { applicationConstants.load( ApplicationConstants.class.getResourceAsStream(APP_CONSTANTS_FILE)); } catch (IOException e) { LOG.log(Level.SEVERE, "An error occurred while loading properties.", e); } } /** The Constant CONTENT_ENCODING. */ public static final String CONTENT_ENCODING = getProperty("com.github.api.v2.services.encoding"); /** The Constant DEFAULT_API_VERSION. */ public static final String DEFAULT_API_VERSION = getProperty("com.github.api.v2.services.defaultApiVersion"); /** The Constant DEFAULT_FORMAT. */ public static final String DEFAULT_FORMAT = getProperty("com.github.api.v2.services.defaultFormat"); /** The Constant DATE_FORMAT. */ public static final String DATE_FORMAT = getProperty("com.github.api.v2.services.dateFormat"); /** The Constant CONNECT_TIMEOUT. */ public static final int CONNECT_TIMEOUT = getIntProperty("com.github.api.v2.services.connectTimeout"); /** The Constant READ_TIMEOUT. */ public static final int READ_TIMEOUT = getIntProperty("com.github.api.v2.services.readTimeout"); /** The Constant ACCESS_TOKEN_PATTERN. */ public static final Pattern ACCESS_TOKEN_PATTERN = getPatternProperty("com.github.api.v2.services.accessTokenPattern"); /** The Constant ACCESS_DENIED_PATTERN. */ public static final Pattern ACCESS_DENIED_PATTERN = getPatternProperty("com.github.api.v2.services.accessDeniedPattern"); /** * Instantiates a new application constants. */ private ApplicationConstants() {} /** * Gets the property. * * @param key * the key * * @return the property */ public static String getProperty(String key) { return applicationConstants.getProperty(key); } /** * Gets the int property. * * @param key * the key * * @return the int property */ public static int getIntProperty(String key) { String property = applicationConstants.getProperty(key); if (isNullOrEmpty(property)) { return 0; } else { return Integer.parseInt(property); } } /** * Gets the boolean property. * * @param key * the key * * @return the boolean property */ public static boolean getBooleanProperty(String key) { String property = applicationConstants.getProperty(key); if (isNullOrEmpty(property)) { return false; } else { return Boolean.parseBoolean(property); } } /** * Gets the double property. * * @param key * the key * * @return the double property */ public static double getDoubleProperty(String key) { String property = applicationConstants.getProperty(key); if (isNullOrEmpty(property)) { return 0; } else { return Double.parseDouble(property); } } /** * Gets the long property. * * @param key * the key * * @return the long property */ public static long getLongProperty(String key) { String property = applicationConstants.getProperty(key); if (isNullOrEmpty(property)) { return 0; } else { return Long.parseLong(property); } } /** * Gets the pattern property. * * @param key * the key * * @return the pattern property */ public static Pattern getPatternProperty(String key) { String property = applicationConstants.getProperty(key); if (isNullOrEmpty(property)) { return null; } else { return Pattern.compile(property); } } /** * Checks if is null or empty. * * @param s * the s * * @return true, if is null or empty */ private static boolean isNullOrEmpty(String s) { return ((s == null) || s.length() == 0); } }