in myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/output/MeterRenderer.java [46:109]
public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException {
if (log.isLoggable(Level.FINE))
log.fine("encodeBegin");
super.encodeBegin(facesContext, uiComponent);
RendererUtils.checkParamValidity(facesContext, uiComponent, AbstractMeter.class);
ResponseWriter writer = facesContext.getResponseWriter();
AbstractMeter component = (AbstractMeter) uiComponent;
writer.startElement("meter", uiComponent);
// write id
writer.writeAttribute(HTML5.ID_ATTR, component.getClientId(facesContext), null);
final Double value = component.getValue();
final Double maximum = component.getMaximum();
final Double minimum = component.getMinimum();
if(minimum > maximum){
throw new FacesException("Minimum value of meter component cannot be larger than maximum value, but " + minimum + " > " + maximum);
}
if(value < minimum){
throw new FacesException("Value of meter component cannot be smaller than minimum value, but " + value + " < " + minimum);
}
if(value > maximum ){
throw new FacesException("Value of meter component cannot be larger than maximum value, but " + value + " > " + maximum);
}
final Double low = component.getLow();
final Double high = component.getHigh();
final Double optimum = component.getOptimum();
if(low!=null && (low < minimum || low>maximum)){
throw new FacesException("Low value of meter component must be between minimum value and maximum value. Low :" + low + " , minimum : " + minimum + " , maximum : " + maximum);
}
if(high!=null && (high < minimum || high>maximum)){
throw new FacesException("High value of meter component must be between minimum value and maximum value. High :" + high + " , minimum : " + minimum + " , maximum : " + maximum);
}
if(optimum!=null && (optimum < minimum || optimum>maximum)){
throw new FacesException("Optimum value of meter component must be between minimum value and maximum value. Optimum :" + optimum + " , minimum : " + minimum + " , maximum : " + maximum);
}
if(low!=null && high!=null && low>high){
throw new FacesException("Low value of meter component cannot be larger than high value, but " + low + " > " + high);
}
if(low!=null && optimum!=null && optimum < low ){
throw new FacesException("Optimum value of meter component cannot be smaller than low value, but " + optimum + " < " + low);
}
if(high!=null && optimum!=null && optimum > high ){
throw new FacesException("Optimum value of meter component cannot be larger than high value, but " + optimum + " > " + high);
}
renderPassThruAttrsAndEvents(facesContext, uiComponent);
}