1 16 17 18 package org.apache.commons.beanutils.converters; 19 20 21 import org.apache.commons.beanutils.ConversionException; 22 import org.apache.commons.beanutils.Converter; 23 24 25 35 36 public final class BooleanConverter implements Converter { 37 38 39 41 42 46 public BooleanConverter() { 47 48 this.defaultValue = null; 49 this.useDefault = false; 50 51 } 52 53 54 60 public BooleanConverter(Object defaultValue) { 61 62 this.defaultValue = defaultValue; 63 this.useDefault = true; 64 65 } 66 67 68 70 71 74 private Object defaultValue = null; 75 76 77 80 private boolean useDefault = true; 81 82 83 85 86 96 public Object convert(Class type, Object value) { 97 98 if (value == null) { 99 if (useDefault) { 100 return (defaultValue); 101 } else { 102 throw new ConversionException("No value specified"); 103 } 104 } 105 106 if (value instanceof Boolean ) { 107 return (value); 108 } 109 110 try { 111 String stringValue = value.toString(); 112 if (stringValue.equalsIgnoreCase("yes") || 113 stringValue.equalsIgnoreCase("y") || 114 stringValue.equalsIgnoreCase("true") || 115 stringValue.equalsIgnoreCase("on") || 116 stringValue.equalsIgnoreCase("1")) { 117 return (Boolean.TRUE); 118 } else if (stringValue.equalsIgnoreCase("no") || 119 stringValue.equalsIgnoreCase("n") || 120 stringValue.equalsIgnoreCase("false") || 121 stringValue.equalsIgnoreCase("off") || 122 stringValue.equalsIgnoreCase("0")) { 123 return (Boolean.FALSE); 124 } else if (useDefault) { 125 return (defaultValue); 126 } else { 127 throw new ConversionException(stringValue); 128 } 129 } catch (ClassCastException e) { 130 if (useDefault) { 131 return (defaultValue); 132 } else { 133 throw new ConversionException(e); 134 } 135 } 136 137 } 138 139 140 } 141 | Popular Tags |