extensions/net.sf.basedb.labenv/trunk/src/net/sf/basedb/labenv/LabEnv.java

Code
Comments
Other
Rev Date Author Line
2303 02 Apr 14 olle 1 /**
2303 02 Apr 14 olle 2   $Id $
2303 02 Apr 14 olle 3
2303 02 Apr 14 olle 4   Copyright (C) 2014 Olle MÃ¥nsson
2303 02 Apr 14 olle 5
2303 02 Apr 14 olle 6   This file is part of the LabEnv extension for BASE.
2303 02 Apr 14 olle 7   Available at http://baseplugins.thep.lu.se/
2303 02 Apr 14 olle 8   BASE main site: http://base.thep.lu.se/
2303 02 Apr 14 olle 9   -----------------------------------------------------------
2303 02 Apr 14 olle 10   
2303 02 Apr 14 olle 11   This is free software; you can redistribute it and/or
2303 02 Apr 14 olle 12   modify it under the terms of the GNU General Public License
2303 02 Apr 14 olle 13   as published by the Free Software Foundation; either version 3
2303 02 Apr 14 olle 14   of the License, or (at your option) any later version.
2303 02 Apr 14 olle 15   
2303 02 Apr 14 olle 16   The software is distributed in the hope that it will be useful,
2303 02 Apr 14 olle 17   but WITHOUT ANY WARRANTY; without even the implied warranty of
2303 02 Apr 14 olle 18   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2303 02 Apr 14 olle 19   GNU General Public License for more details.
2303 02 Apr 14 olle 20   
2303 02 Apr 14 olle 21   You should have received a copy of the GNU General Public License
2303 02 Apr 14 olle 22   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2303 02 Apr 14 olle 23
2303 02 Apr 14 olle 24 */
2303 02 Apr 14 olle 25 package net.sf.basedb.labenv;
2303 02 Apr 14 olle 26
2303 02 Apr 14 olle 27 import java.text.SimpleDateFormat;
2303 02 Apr 14 olle 28
2303 02 Apr 14 olle 29 import net.sf.basedb.labenv.converter.DateToStringConverter;
2303 02 Apr 14 olle 30 import net.sf.basedb.labenv.converter.StringToDateConverter;
2303 02 Apr 14 olle 31
2303 02 Apr 14 olle 32 /**
2303 02 Apr 14 olle 33   Global constants for the LabEnv package.
2303 02 Apr 14 olle 34   @since 1.0
2303 02 Apr 14 olle 35 */
2303 02 Apr 14 olle 36 public class LabEnv
2303 02 Apr 14 olle 37 {
2303 02 Apr 14 olle 38   
2303 02 Apr 14 olle 39   /**
2303 02 Apr 14 olle 40     The current version of this package.
2303 02 Apr 14 olle 41   */
5572 15 Aug 19 nicklas 42   public static final String VERSION = "1.8-dev";
2303 02 Apr 14 olle 43
2303 02 Apr 14 olle 44   
2303 02 Apr 14 olle 45   /**
2303 02 Apr 14 olle 46     Default converter for date values to string values: yyyyMMdd
2303 02 Apr 14 olle 47     @since 2.2
2303 02 Apr 14 olle 48   */
2303 02 Apr 14 olle 49   public static final DateToStringConverter CONVERTER_DATE_TO_STRING = new DateToStringConverter(new SimpleDateFormat("yyyyMMdd"));
2303 02 Apr 14 olle 50   
2303 02 Apr 14 olle 51   /**
2303 02 Apr 14 olle 52     Default converter for string values to date values: yyyyMMdd
2303 02 Apr 14 olle 53     @since 2.2
2303 02 Apr 14 olle 54   */
2303 02 Apr 14 olle 55   public static final StringToDateConverter CONVERTER_STRING_TO_DATE = new StringToDateConverter(new SimpleDateFormat("yyyyMMdd"));
2303 02 Apr 14 olle 56   
2303 02 Apr 14 olle 57   /**
2303 02 Apr 14 olle 58     Default converter for date+time values to string values: yyyyMMdd HHmm
2303 02 Apr 14 olle 59     @since 2.2
2303 02 Apr 14 olle 60   */
2303 02 Apr 14 olle 61   public static final DateToStringConverter CONVERTER_DATETIME_TO_STRING = new DateToStringConverter(new SimpleDateFormat("yyyyMMdd HHmm"));
2303 02 Apr 14 olle 62   
2303 02 Apr 14 olle 63   /**
2303 02 Apr 14 olle 64     Default converter for string values to date+time values: yyyyMMdd HHmm
2303 02 Apr 14 olle 65     @since 2.2
2303 02 Apr 14 olle 66   */
2303 02 Apr 14 olle 67   public static final StringToDateConverter CONVERTER_STRING_TO_DATETIME = new StringToDateConverter(new SimpleDateFormat("yyyyMMdd HHmm"));
2303 02 Apr 14 olle 68   
2303 02 Apr 14 olle 69   /**
2303 02 Apr 14 olle 70     Compare two comparable objects with null safety. Two null objects
2303 02 Apr 14 olle 71     are considered equal and all null objects are sorted after all non-null
2303 02 Apr 14 olle 72     objects.
2303 02 Apr 14 olle 73     @return A negative value if the first argument should be sorted before the second,
2303 02 Apr 14 olle 74       zero if they are equal, a positive value if the second argument should be sorted 
2303 02 Apr 14 olle 75       before the first
2303 02 Apr 14 olle 76   */
2303 02 Apr 14 olle 77   public static <T extends Comparable<T>> int nullSafeCompare(T o1, T o2)
2303 02 Apr 14 olle 78   {
2303 02 Apr 14 olle 79     int result = 0;
2303 02 Apr 14 olle 80     if (o1 == o2)
2303 02 Apr 14 olle 81     {}
2303 02 Apr 14 olle 82     else if (o1 == null)
2303 02 Apr 14 olle 83     {
2303 02 Apr 14 olle 84       result = 1;
2303 02 Apr 14 olle 85     }
2303 02 Apr 14 olle 86     else if (o2 == null)
2303 02 Apr 14 olle 87     {
2303 02 Apr 14 olle 88       result = -1;
2303 02 Apr 14 olle 89     }
2303 02 Apr 14 olle 90     else
2303 02 Apr 14 olle 91     {
2303 02 Apr 14 olle 92       result = o1.compareTo(o2);
2303 02 Apr 14 olle 93     }
2303 02 Apr 14 olle 94     return result;
2303 02 Apr 14 olle 95   }
2303 02 Apr 14 olle 96   
2303 02 Apr 14 olle 97   /**
2303 02 Apr 14 olle 98     Round a floating point value to a given number of decimals.
2303 02 Apr 14 olle 99     @since 2.12
2303 02 Apr 14 olle 100   */
2303 02 Apr 14 olle 101   public static float round(float value, int decimals)
2303 02 Apr 14 olle 102   {
2303 02 Apr 14 olle 103     double factor = Math.pow(10, decimals);
2303 02 Apr 14 olle 104     return (float)(Math.round(factor * value) / factor);
2303 02 Apr 14 olle 105   }
2303 02 Apr 14 olle 106   
2303 02 Apr 14 olle 107 }