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 org.apache.myfaces.orchestra.frameworkAdapter.FrameworkAdapter;
22
23 import javax.faces.convert.Converter;
24 import javax.faces.convert.ConverterException;
25 import javax.faces.context.FacesContext;
26 import javax.faces.component.UIComponent;
27 import java.io.Serializable;
28
29 /***
30 * Wraps a converter and serialize just its id to make it serializable.
31 */
32 public class SerializableConverter implements Converter, Serializable
33 {
34 private static final long serialVersionUID = 1L;
35
36 private final String converterId;
37 private transient Converter converter;
38
39 public SerializableConverter(String converterId)
40 {
41 this.converterId = converterId;
42 }
43
44 public SerializableConverter(String converterId, Converter converter)
45 {
46 this(converterId);
47 this.converter = converter;
48 }
49
50 protected Converter getConverter()
51 {
52 if (this.converter == null)
53 {
54 this.converter = (Converter) FrameworkAdapter.getCurrentInstance().getBean(this.converterId);
55 }
56
57 return this.converter;
58 }
59
60 public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException
61 {
62 return getConverter().getAsObject(context, component, value);
63 }
64
65 public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException
66 {
67 return getConverter().getAsString(context, component, value);
68 }
69 }