SystemConfigurationUtilities.java
- /*
- * This software was designed and created by Jason Carroll.
- * Copyright (c) 2002, 2003, 2004 Jason Carroll.
- * The author can be reached at jcarroll@cowsultants.com
- * ITracker website: http://www.cowsultants.com
- * ITracker forums: http://www.cowsultants.com/phpBB/index.php
- *
- * This program is free software; you can redistribute it and/or modify
- * it only under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- package org.itracker.model.util;
- import org.apache.log4j.Logger;
- import org.itracker.core.resources.ITrackerResources;
- import org.itracker.model.Configuration;
- import org.itracker.model.NameValuePair;
- import java.util.NoSuchElementException;
- import java.util.StringTokenizer;
- public class SystemConfigurationUtilities {
- private static final Logger log = Logger.getLogger(SystemConfigurationUtilities.class);
- @Deprecated
- public static final int TYPE_INITIALIZED = Configuration.Type.initialized.getCode();
- @Deprecated
- public static final int TYPE_LOCALE = Configuration.Type.locale.getCode();
- @Deprecated
- public static final int TYPE_STATUS = Configuration.Type.status.getCode();
- @Deprecated
- public static final int TYPE_SEVERITY = Configuration.Type.severity.getCode();
- @Deprecated
- public static final int TYPE_RESOLUTION = Configuration.Type.resolution.getCode();
- @Deprecated
- public static final int TYPE_CUSTOMFIELD = Configuration.Type.customfield.getCode();
- @Deprecated
- public static final int ACTION_CREATE = 1;
- @Deprecated
- public static final int ACTION_UPDATE = 2;
- @Deprecated
- public static final int ACTION_REMOVE = 3;
- public static final int LOCALE_TYPE_INVALID = -1;
- public static final int LOCALE_TYPE_BASE = 1;
- public static final int LOCALE_TYPE_LANGUAGE = 2;
- public static final int LOCALE_TYPE_LOCALE = 3;
- /**
- * Returns the key for a particular configuration item. This is made up of a
- * static part based on the type of configuration item, and the unique value
- * of the configuration item.
- *
- * @param configuration the Configuration to return the key for
- * @return the key for the item
- */
- public static String getLanguageKey(Configuration configuration) {
- if (configuration != null) {
- return configuration.getType().getLanguageKey(configuration);
- }
- return "";
- }
- @Deprecated
- public static String getTypeName(int type) {
- return Configuration.Type.valueOf(type).name();
- }
- public static String getTypeLanguageKey(Configuration configuration) {
- return configuration.getType().getTypeLanguageKey();
- }
- public static long getVersionAsLong(String version) {
- long versionNumber = 0;
- if (log.isDebugEnabled()) {
- log.debug("getVersionAsLong: transforming " + version);
- }
- if (version != null) {
- if ("0".equals(version)) {
- return 0;
- }
- // support -SNAPSHOT versions
- version = version.split("-")[0];
- StringTokenizer token = new StringTokenizer(version, ".");
- try {
- if (token.countTokens() > 0 && token.countTokens() <= 3) {
- versionNumber += 1000000L * Integer.parseInt(token
- .nextToken());
- versionNumber += 1000L * Integer
- .parseInt(token.nextToken());
- versionNumber += Integer.parseInt(token.nextToken());
- } else {
- throw new IllegalArgumentException("The version " + version + " is not parseable, excpected '(int)number[.(int)major[.(int)minor]]");
- }
- } catch (NumberFormatException nfe) {
- // OK
- } catch (NoSuchElementException nsee) {
- // OK
- }
- }
- if (log.isDebugEnabled()) {
- log.debug("getVersionAsLong: returning " + versionNumber);
- }
- return versionNumber;
- }
- public static int getLocaleType(String locale) {
- if (locale == null || locale.equals("")) {
- return LOCALE_TYPE_INVALID;
- }
- if (ITrackerResources.BASE_LOCALE.equalsIgnoreCase(locale)) {
- return LOCALE_TYPE_BASE;
- } else if (locale.length() == 5 && locale.indexOf('_') == 2) {
- return LOCALE_TYPE_LOCALE;
- } else if (locale.length() == 2) {
- return LOCALE_TYPE_LANGUAGE;
- } else {
- return LOCALE_TYPE_INVALID;
- }
- }
- public static String getLocalePart(String locale, int partType) {
- if (locale == null || partType == LOCALE_TYPE_INVALID) {
- return null;
- }
- if (partType == LOCALE_TYPE_LOCALE && locale.length() == 5
- && locale.indexOf('_') == 2) {
- return locale;
- } else if (partType == LOCALE_TYPE_LANGUAGE && locale.length() == 5
- && locale.indexOf('_') == 2) {
- return locale.substring(0, 2);
- } else if (partType == LOCALE_TYPE_LANGUAGE && locale.length() == 2) {
- return locale;
- } else if (partType == LOCALE_TYPE_BASE) {
- return ITrackerResources.BASE_LOCALE;
- }
- return null;
- }
- public static Configuration[] nvpArrayToConfigurationArray(Configuration.Type configType,
- NameValuePair[] names) {
- if (names == null) {
- return new Configuration[0];
- }
- Configuration[] configModels = new Configuration[names.length];
- for (int i = 0; i < names.length; i++) {
- configModels[i] = new Configuration(configType, names[i]);
- }
- return configModels;
- }
- }