1
2
3
4 package org.rcfaces.core.converter;
5
6 import javax.faces.component.UIComponent;
7 import javax.faces.context.FacesContext;
8 import javax.faces.convert.ConverterException;
9
10
11
12
13
14
15 public class ByteConverter extends AbstractNumberConverter {
16 private static final String REVISION = "$Revision: 1.1 $";
17
18 public ByteConverter() {
19 setIntegerOnly(true);
20 setMaxFractionDigits(3);
21 }
22
23 public Object getAsObject(FacesContext context, UIComponent component,
24 String value) {
25
26 if (value == null || value.trim().length() < 1) {
27 Object v = getDefaultValue();
28 if (v instanceof Byte) {
29 return v;
30 }
31 if (v instanceof Number) {
32 return new Byte(((Number) v).byteValue());
33 }
34 value = (String) v;
35 }
36
37 Number number = (Number) super.getAsObject(context, component, value);
38
39 if (number == null || (number instanceof Byte)) {
40 return number;
41 }
42
43 long l = number.longValue();
44 if (l < Byte.MIN_VALUE || l > Byte.MAX_VALUE) {
45 throw new ConverterException(
46 "Number can not be converted to byte. (value=" + l + ")");
47 }
48
49 return new Byte(number.byteValue());
50 }
51 }