Java tutorial
/* * Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los trminos * de la licencia "GNU General Public License" publicada por la Fundacin "Free Software Foundation". * Este programa se distribuye con la esperanza de que pueda ser til, pero SIN NINGUNA GARANTIA; * vea la licencia "GNU General Public License" para obtener mas informacin. */ package ips1ap101.lib.base.util; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; /** * @author Jorge Campins */ public class TemporalAddend { private int _quantity; private char _unit; private static char[] _validUnits = { 'A', 'Y', 'M', 'D', 'h', 'm', 's' }; public TemporalAddend() { init(); } public TemporalAddend(int quantity, char unit) { _quantity = quantity; _unit = ArrayUtils.contains(_validUnits, unit) ? unit : '?'; } public TemporalAddend(String string) { init(); String trimmed = StringUtils.trimToNull(string); if (trimmed != null) { int end = trimmed.length() - 1; char unit = trimmed.charAt(end); boolean digit = Character.isDigit(unit); _quantity = digit ? quantityOf(trimmed) : quantityOf(trimmed.substring(0, end)); _unit = ArrayUtils.contains(_validUnits, unit) ? unit : digit ? 'D' : '?'; } } private void init() { _quantity = 0; _unit = '?'; } private int quantityOf(String string) { try { return Integer.valueOf(string); } catch (Exception e) { return 0; } } /** * @return the quantity */ public int getQuantity() { return _quantity; } /** * @return the unit */ public char getUnit() { return _unit; } public boolean isValid() { return _quantity != 0 && ArrayUtils.contains(_validUnits, _unit); } @Override public String toString() { return _quantity + "" + _unit; } }