extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/converter/BooleanToEnumConverter.java

Code
Comments
Other
Rev Date Author Line
4465 25 Apr 17 nicklas 1 package net.sf.basedb.reggie.converter;
4465 25 Apr 17 nicklas 2
4465 25 Apr 17 nicklas 3 import java.util.Arrays;
4465 25 Apr 17 nicklas 4 import java.util.List;
4465 25 Apr 17 nicklas 5
4465 25 Apr 17 nicklas 6 /**
4465 25 Apr 17 nicklas 7   Converter for boolean input values to enum output values.
4465 25 Apr 17 nicklas 8
4465 25 Apr 17 nicklas 9   @author nicklas
4465 25 Apr 17 nicklas 10   @since 4.10
4465 25 Apr 17 nicklas 11 */
4465 25 Apr 17 nicklas 12 public class BooleanToEnumConverter<E>
4465 25 Apr 17 nicklas 13   implements ValueConverter<Boolean, E> 
4465 25 Apr 17 nicklas 14 {
4465 25 Apr 17 nicklas 15
4465 25 Apr 17 nicklas 16   private final E trueValue;
4465 25 Apr 17 nicklas 17   private final E falseValue;
4465 25 Apr 17 nicklas 18   private final E nullValue;
4465 25 Apr 17 nicklas 19   
4465 25 Apr 17 nicklas 20   /**
4465 25 Apr 17 nicklas 21     Create a new boolean to enum converter with the given values.
4465 25 Apr 17 nicklas 22   */
4465 25 Apr 17 nicklas 23   public BooleanToEnumConverter(E trueValue, E falseValue, E nullValue)
4465 25 Apr 17 nicklas 24   {
4465 25 Apr 17 nicklas 25     this.trueValue = trueValue;
4465 25 Apr 17 nicklas 26     this.falseValue = falseValue;
4465 25 Apr 17 nicklas 27     this.nullValue = nullValue;
4465 25 Apr 17 nicklas 28   }
4465 25 Apr 17 nicklas 29
4465 25 Apr 17 nicklas 30   @Override
4465 25 Apr 17 nicklas 31   public E convert(Boolean value) 
4465 25 Apr 17 nicklas 32   {
4465 25 Apr 17 nicklas 33     return value == null ? nullValue : (value ? trueValue : falseValue);
4465 25 Apr 17 nicklas 34   }
4465 25 Apr 17 nicklas 35
4465 25 Apr 17 nicklas 36   /**
4465 25 Apr 17 nicklas 37     Get all possible values in a list.
4465 25 Apr 17 nicklas 38   */
4465 25 Apr 17 nicklas 39   public List<E> getEnum()
4465 25 Apr 17 nicklas 40   {
4465 25 Apr 17 nicklas 41     return Arrays.asList(trueValue, falseValue, nullValue);
4465 25 Apr 17 nicklas 42   }
4465 25 Apr 17 nicklas 43 }