src/core/net/sf/basedb/util/formatter/ValueTypeFormatter.java

Code
Comments
Other
Rev Date Author Line
7087 03 Mar 16 nicklas 1 /**
7087 03 Mar 16 nicklas 2   $Id$
7087 03 Mar 16 nicklas 3
7087 03 Mar 16 nicklas 4   Copyright (C) 2016 Nicklas Nordborg
7087 03 Mar 16 nicklas 5
7087 03 Mar 16 nicklas 6   This file is part of BASE - BioArray Software Environment.
7087 03 Mar 16 nicklas 7   Available at http://base.thep.lu.se/
7087 03 Mar 16 nicklas 8
7087 03 Mar 16 nicklas 9   BASE is free software; you can redistribute it and/or
7087 03 Mar 16 nicklas 10   modify it under the terms of the GNU General Public License
7087 03 Mar 16 nicklas 11   as published by the Free Software Foundation; either version 3
7087 03 Mar 16 nicklas 12   of the License, or (at your option) any later version.
7087 03 Mar 16 nicklas 13
7087 03 Mar 16 nicklas 14   BASE is distributed in the hope that it will be useful,
7087 03 Mar 16 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
7087 03 Mar 16 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
7087 03 Mar 16 nicklas 17   GNU General Public License for more details.
7087 03 Mar 16 nicklas 18
7087 03 Mar 16 nicklas 19   You should have received a copy of the GNU General Public License
7087 03 Mar 16 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
7087 03 Mar 16 nicklas 21 */
7087 03 Mar 16 nicklas 22 package net.sf.basedb.util.formatter;
7087 03 Mar 16 nicklas 23
7087 03 Mar 16 nicklas 24 import net.sf.basedb.core.Type;
7087 03 Mar 16 nicklas 25
7087 03 Mar 16 nicklas 26 /**
7087 03 Mar 16 nicklas 27   Formatter implementation that converts an integer into it's Type
7087 03 Mar 16 nicklas 28   representation and the uses name() as the formatted value.
7087 03 Mar 16 nicklas 29
7087 03 Mar 16 nicklas 30   @author Nicklas
7087 03 Mar 16 nicklas 31   @since 3.8
7087 03 Mar 16 nicklas 32   @see Type
7087 03 Mar 16 nicklas 33 */
7087 03 Mar 16 nicklas 34 public class ValueTypeFormatter
7087 03 Mar 16 nicklas 35   implements Formatter<Integer>
7087 03 Mar 16 nicklas 36 {
7087 03 Mar 16 nicklas 37   private String nullValue = "";
7087 03 Mar 16 nicklas 38
7087 03 Mar 16 nicklas 39   /**
7087 03 Mar 16 nicklas 40     Create a new formatter. Null values are formatted as an empty string.
7087 03 Mar 16 nicklas 41   */
7087 03 Mar 16 nicklas 42   public ValueTypeFormatter()
7087 03 Mar 16 nicklas 43   {}
7087 03 Mar 16 nicklas 44
7087 03 Mar 16 nicklas 45   /**
7087 03 Mar 16 nicklas 46     Create a new formatter.
7087 03 Mar 16 nicklas 47     @param nullValue The string to return if a null item is 
7087 03 Mar 16 nicklas 48       passed to {@link #format(Integer)}
7087 03 Mar 16 nicklas 49   */
7087 03 Mar 16 nicklas 50   public ValueTypeFormatter(String nullValue)
7087 03 Mar 16 nicklas 51   {
7087 03 Mar 16 nicklas 52     this.nullValue = nullValue;
7087 03 Mar 16 nicklas 53   }
7087 03 Mar 16 nicklas 54
7087 03 Mar 16 nicklas 55   /*
7087 03 Mar 16 nicklas 56     From the Formatter interface
7087 03 Mar 16 nicklas 57     -------------------------------------------
7087 03 Mar 16 nicklas 58   */
7087 03 Mar 16 nicklas 59   @Override
7087 03 Mar 16 nicklas 60   public String format(Integer value)
7087 03 Mar 16 nicklas 61   {
7087 03 Mar 16 nicklas 62     Type t = value == null ? null : Type.fromValue(value);
7087 03 Mar 16 nicklas 63     return t == null ? nullValue : t.name(); 
7087 03 Mar 16 nicklas 64   }
7087 03 Mar 16 nicklas 65
7087 03 Mar 16 nicklas 66   @Override
7087 03 Mar 16 nicklas 67   public Integer parseString(String value)
7087 03 Mar 16 nicklas 68   {
7087 03 Mar 16 nicklas 69     try
7087 03 Mar 16 nicklas 70     {
7087 03 Mar 16 nicklas 71       return Type.valueOf(value).getValue();
7087 03 Mar 16 nicklas 72     }
7087 03 Mar 16 nicklas 73     catch (Exception ex)
7087 03 Mar 16 nicklas 74     {}
7087 03 Mar 16 nicklas 75     return null;
7087 03 Mar 16 nicklas 76   }
7087 03 Mar 16 nicklas 77   // -------------------------------------------
7087 03 Mar 16 nicklas 78     
7087 03 Mar 16 nicklas 79   
7087 03 Mar 16 nicklas 80   
7087 03 Mar 16 nicklas 81 }