/**
*
*/
package org.richfaces.example;
import java.lang.reflect.ParameterizedType;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
/**
* @author asmirnov
*
*/
public abstract class Validable<T> {
T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public Converter getConverter() {
Class<T> parameterType = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
return FacesContext.getCurrentInstance().getApplication().createConverter(parameterType);
}
public abstract String getDescription();
public abstract String getLabel();
}