001package de.cuioss.test.jsf.mocks;
002
003import static java.util.Objects.requireNonNull;
004
005import javax.faces.component.UIComponent;
006import javax.faces.context.FacesContext;
007import javax.faces.convert.Converter;
008import javax.faces.convert.FacesConverter;
009
010/**
011 * For testing converter
012 *
013 * @author Matthias Walliczek
014 */
015@FacesConverter(ReverseConverter.CONVERTER_ID)
016public class ReverseConverter implements Converter<String> {
017
018    /**
019     * <p>
020     * The standard converter id for this converter.
021     * </p>
022     */
023    public static final String CONVERTER_ID = "de.cuioss.test.jsf.mocks.ReserveConverter";
024
025    @Override
026    public String getAsObject(final FacesContext context, final UIComponent component, final String value) {
027        return reverse(context, component, value);
028    }
029
030    @Override
031    public String getAsString(final FacesContext context, final UIComponent component, final String value) {
032        return reverse(context, component, value);
033    }
034
035    private String reverse(final FacesContext context, final UIComponent component, final String value) {
036        requireNonNull(component);
037        requireNonNull(context);
038        if (null == value) {
039            return "";
040        }
041        return new StringBuilder(value).reverse().toString();
042    }
043
044}