1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.orchestra.lib.jsf;
20
21 import javax.faces.component.StateHolder;
22 import javax.faces.component.UIComponent;
23 import javax.faces.context.FacesContext;
24 import javax.faces.convert.Converter;
25 import javax.faces.convert.ConverterException;
26
27 public class StatefulConverter implements Converter, StateHolder
28 {
29 int count = 17;
30 public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException
31 {
32 ++count;
33 return value.toUpperCase() + ":" + count;
34 }
35
36 public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException
37 {
38 ++count;
39 if (value == null)
40 return null;
41 else
42 return value.toString().toUpperCase() + ":" + count;
43 }
44
45 public boolean isTransient()
46 {
47 return false;
48 }
49
50 public void restoreState(FacesContext context, Object oldState)
51 {
52 Object[] state = (Object[]) oldState;
53 count = ((Integer) state[0]).intValue();
54 }
55
56 public Object saveState(FacesContext context)
57 {
58 Object[] state = new Object[1];
59 state[0] = new Integer(count);
60 return state;
61 }
62
63 public void setTransient(boolean newTransientValue)
64 {
65 }
66 }