/**
 * 
 */


import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

import org.apache.commons.lang.StringUtils;

/**
 * @author Parthiv_Pradhan
 *
 */
public class QuantityConverter implements Converter {
	

	/* (non-Javadoc)
	 * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
	 */
	@Override
	public Object getAsObject(FacesContext context, UIComponent comp, String value) {
		
		FacesMessage facemsg = null;
		Integer qty = null;
		
		if (StringUtils.isBlank(value)) {
			
			facemsg = new FacesMessage();
			facemsg.setDetail("Please enter a value");
			facemsg.setSummary("Please enter a value");
			facemsg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(comp.getClientId(context), facemsg);
	
			throw new ConverterException(facemsg);

		}
		
		if (!StringUtils.isNumeric(value)) {
			
			facemsg = new FacesMessage();
			facemsg.setDetail("Invalid Quantity");
			facemsg.setSummary("Invalid Quantity");
			facemsg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(comp.getClientId(context), facemsg);
			throw new ConverterException(facemsg);
			
		}
		
		if (!StringUtils.isBlank(value)) {
			
			qty = new Integer (value);
		}
		return qty;
	}

	/* (non-Javadoc)
	 * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
	 */
	@Override
	public String getAsString(FacesContext context, UIComponent com, Object obj) {
		if (null == obj) {
			
			obj = "";
		}
		return obj.toString();
	}
	

}
