1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.example.demo;
21
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24
25 import javax.enterprise.inject.spi.CDI;
26 import javax.faces.component.UIComponent;
27 import javax.faces.context.FacesContext;
28 import javax.faces.convert.Converter;
29 import javax.faces.convert.ConverterException;
30 import javax.faces.convert.FacesConverter;
31 import javax.inject.Inject;
32 import java.lang.invoke.MethodHandles;
33
34 @FacesConverter(forClass = SolarObject.class)
35 public class SolarConverter implements Converter<SolarObject> {
36
37 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
38
39 @Inject
40 private AstroData astroData;
41
42 @Override
43 public SolarObject getAsObject(final FacesContext context, final UIComponent component, final String value)
44 throws ConverterException {
45
46 if (astroData == null) {
47 astroData = CDI.current().select(AstroData.class).get();
48 }
49
50 final SolarObject solarObject = value != null ? astroData.find(value) : null;
51 LOG.info("{} [String] -> {} [SolarObject]", value, solarObject);
52 return solarObject;
53 }
54
55 @Override
56 public String getAsString(final FacesContext context, final UIComponent component, final SolarObject value)
57 throws ConverterException {
58 final String result = value.getName();
59 LOG.info("{} [SolarObject] -> {} [String]", value, result);
60 return result;
61 }
62 }