public void encodeBegin()

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);
    }