> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/implementar-plantillas-primefaces-jsf/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://avbravo-2.gitbook.io/implementar-plantillas-primefaces-jsf/capitulo-ii.-crear-ejb/converter.md).

# Converter

Se utilizan para realizar conversiones de tipo de datos a los objetos seleccionados generalmente cuando usamos un selectOneMenu, con una lista de entitys es un ejemplo de uso.

**Implementar**

* Implements Converter
* Inyectar el facade
* método getAsObject()
* método getAsString()

## ![](https://1998810595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lc1Wg6NlSdMpuhIAMG0%2F-Lc1WgY0JLeRbCpPFKLC%2F-Lc1WlE9PpovkUgr0LqK%2Fcon.png?generation=1554820573938713\&alt=media)

## BodegaConverter.java

```
import com.avbravo.ejbspard.entity.*;
import com.avbravo.ejbspard.ejb.*;
import com.avbravo.avbravoutils.JsfUtil;
import java.util.Optional;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.inject.Named;

/**
 *
 * @author avbravo
 */
@Named
@RequestScoped
public class BodegaConverter implements Converter {

    @Inject
    BodegaRepository bodegaRepository;

    @Override
    public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String s) {
        Bodega bodega = new Bodega();
        try{
            if(!s.equals("null")){
               Bodega b = new Bodega();
               b.setIdbodega(s);
               Optional<Bodega> optional = bodegaRepository.findById(b);
               if (optional.isPresent()) {
               bodega= optional.get();  
               }   
             }
          } catch (Exception e) {
             JsfUtil.errorMessage("getAsObject()" + e.getLocalizedMessage());
          }
          return bodega;
      }


    @Override
    public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object o) {
        String r = "";
        try {
            if (o instanceof Bodega) {
                Bodega bodega = (Bodega) o;
                r = String.valueOf(bodega.getIdbodega());
            }else if (o instanceof String) {
               r = (String) o;
            }
        } catch (Exception e) {
            JsfUtil.errorMessage("getAsString()" + e.getLocalizedMessage());
        }
        return r;
        }

}
```
