view flys-artifacts/src/main/java/de/intevation/flys/utils/Formatter.java @ 2792:fe987587ebc9

Merged revisions 4539-4540,4543,4545-4546 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk ........ r4539 | teichmann | 2012-05-27 20:02:13 +0200 (So, 27 Mai 2012) | 1 line FixA: Added forgotten csv/report facets/generators to conf. ........ r4540 | teichmann | 2012-05-27 20:11:31 +0200 (So, 27 Mai 2012) | 1 line FixA: Fixed class cast bug in report facet. ........ r4543 | teichmann | 2012-05-28 20:35:01 +0200 (Mo, 28 Mai 2012) | 1 line FixA: Added facet to return delta w/t as CSV ........ r4545 | teichmann | 2012-05-28 22:59:27 +0200 (Mo, 28 Mai 2012) | 1 line FixA: Made Delta W/t calculation finally work ........ r4546 | teichmann | 2012-05-28 23:34:24 +0200 (Mo, 28 Mai 2012) | 1 line FixA: corrected fitting (Q->W instead W->Q). ........ flys-artifacts/tags/2.7@4547 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 29 May 2012 04:58:29 +0000
parents e63969c173e9
children 296b067e17e6
line wrap: on
line source
package de.intevation.flys.utils;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Locale;

import de.intevation.artifacts.CallContext;
import de.intevation.artifacts.CallMeta;

import de.intevation.flys.artifacts.resources.Resources;


public final class Formatter {

    // KMS IN ERROR REPORTS.
    public static final int CALCULATION_REPORT_KM_MIN_DIGITS = 1;
    public static final int CALCULATION_REPORT_KM_MAX_DIGITS = 3;

    // WATERLEVEL FORMATTER CONSTANTS
    public static final int WATERLEVEL_KM_MIN_DIGITS = 3;
    public static final int WATERLEVEL_KM_MAX_DIGITS = 3;
    public static final int WATERLEVEL_W_MIN_DIGITS  = 0;
    public static final int WATERLEVEL_W_MAX_DIGITS  = 2;
    public static final int WATERLEVEL_Q_MIN_DIGITS  = 0;
    public static final int WATERLEVEL_Q_MAX_DIGITS  = 2;


    // COMPUTED DISCHARGE CURVE FORMATTER CONSTANTS
    public static final int COMPUTED_DISCHARGE_W_MIN_DIGITS  = 2;
    public static final int COMPUTED_DISCHARGE_W_MAX_DIGITS  = 2;
    public static final int COMPUTED_DISCHARGE_Q_MIN_DIGITS  = 0;
    public static final int COMPUTED_DISCHARGE_Q_MAX_DIGITS  = 2;


    // HISTORICAL DISCHARGE CURVE FORMATTER CONSTANTS
    public static final int HISTORICAL_DISCHARGE_W_MIN_DIGITS = 0;
    public static final int HISTORICAL_DISCHARGE_W_MAX_DIGITS = 2;
    public static final int HISTORICAL_DISCHARGE_Q_MIN_DIGITS = 0;
    public static final int HISTORICAL_DISCHARGE_Q_MAX_DIGITS = 2;


    // DURATION CURVE FORMATTER CONSTANTS
    public static final int DURATION_W_MIN_DIGITS = 0;
    public static final int DURATION_W_MAX_DIGITS = 2;
    public static final int DURATION_Q_MIN_DIGITS = 0;
    public static final int DURATION_Q_MAX_DIGITS = 1;
    public static final int DURATION_D_MIN_DIGITS = 0;
    public static final int DURATION_D_MAX_DIGITS = 0;


    // FLOW VELOCITY FORMATTER CONSTANTS
    public static final int FLOW_VELOCITY_KM_MIN_DIGITS     = 3;
    public static final int FLOW_VELOCITY_KM_MAX_DIGITS     = 3;
    public static final int FLOW_VELOCITY_VALUES_MIN_DIGITS = 2;
    public static final int FLOW_VELOCITY_VALUES_MAX_DIGITS = 2;
    public static final int FLOW_VELOCITY_Q_MIN_DIGITS      = 0;
    public static final int FLOW_VELOCITY_Q_MAX_DIGITS      = 2;


    // MIDDLE BED HEIGHT FORMATTER CONSTANTS
    public static final int MIDDLE_BED_HEIGHT_KM_MIN_DIGITS             = 3;
    public static final int MIDDLE_BED_HEIGHT_KM_MAX_DIGITS             = 3;
    public static final int MIDDLE_BED_HEIGHT_HEIGHT_MIN_DIGITS         = 3;
    public static final int MIDDLE_BED_HEIGHT_HEIGHT_MAX_DIGITS         = 3;
    public static final int MIDDLE_BED_HEIGHT_UNCERT_MIN_DIGITS         = 3;
    public static final int MIDDLE_BED_HEIGHT_UNCERT_MAX_DIGITS         = 3;
    public static final int MIDDLE_BED_HEIGHT_DATAGAP_MIN_DIGITS        = 2;
    public static final int MIDDLE_BED_HEIGHT_DATAGAP_MAX_DIGITS        = 2;
    public static final int MIDDLE_BED_HEIGHT_SOUNDING_WIDTH_MIN_DIGITS = 0;
    public static final int MIDDLE_BED_HEIGHT_SOUNDING_WIDTH_MAX_DIGITS = 0;
    public static final int MIDDLE_BED_HEIGHT_WIDTH_MIN_DIGITS          = 3;
    public static final int MIDDLE_BED_HEIGHT_WIDTH_MAX_DIGITS          = 3;

    public static final int FIX_DELTA_W_KM_MIN_DIGITS = 3;
    public static final int FIX_DELTA_W_KM_MAX_DIGITS = 3;
    public static final int FIX_DELTA_W_DELTA_W_MIN_DIGITS = 3;
    public static final int FIX_DELTA_W_DELTA_W_MAX_DIGITS = 3;

    public static NumberFormat getFormatter(CallMeta m, int min, int max){
        Locale       locale = Resources.getLocale(m);
        NumberFormat nf     = NumberFormat.getInstance(locale);

        nf.setMaximumFractionDigits(max);
        nf.setMinimumFractionDigits(min);

        return nf;
    }

    public static NumberFormat getFormatter(CallContext c, int min, int max){
        return getFormatter(c.getMeta(), min, max);
    }


    /**
     * Returns a number formatter with no max or min digits set.
     *
     * @param c The CallContext.
     *
     * @return a number formatter.
     */
    public static NumberFormat getRawFormatter(CallContext c) {
        Locale locale = Resources.getLocale(c.getMeta());
        return NumberFormat.getInstance(locale);
    }


    /**
     * Returns a date formatter with SHORT style.
     */
    public static DateFormat getShortDateFormat(CallContext cc) {
        Locale locale = Resources.getLocale(cc.getMeta());
        return DateFormat.getDateInstance(DateFormat.SHORT, locale);
    }


    /**
     * Returns a date formatter with MEDIUM style.
     */
    public static DateFormat getMediumDateFormat(CallContext cc) {
        Locale locale = Resources.getLocale(cc.getMeta());
        return DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
    }


    /**
     * Returns the number formatter for kilometer values in waterlevel exports.
     *
     * @return the number formatter for kilometer values.
     */
    public static NumberFormat getWaterlevelKM(CallContext context) {
        return getFormatter(
            context,
            WATERLEVEL_KM_MIN_DIGITS,
            WATERLEVEL_KM_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for W values in waterlevel exports.
     *
     * @return the number formatter for W values.
     */
    public static NumberFormat getWaterlevelW(CallContext context) {
        return getFormatter(
            context,
            WATERLEVEL_W_MIN_DIGITS,
            WATERLEVEL_W_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for Q values in waterlevel exports.
     *
     * @return the number formatter for Q values.
     */
    public static NumberFormat getWaterlevelQ(CallContext context) {
        return getFormatter(
            context,
            WATERLEVEL_Q_MIN_DIGITS,
            WATERLEVEL_Q_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for W values in exports of computed
     * discharge curves.
     *
     * @return the number formatter for W values.
     */
    public static NumberFormat getComputedDischargeW(CallContext context) {
        return getFormatter(
            context,
            COMPUTED_DISCHARGE_W_MIN_DIGITS,
            COMPUTED_DISCHARGE_W_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for Q values in exports of computed
     * discharge curves.
     *
     * @return the number formatter for Q values.
     */
    public static NumberFormat getComputedDischargeQ(CallContext context) {
        return getFormatter(
            context,
            COMPUTED_DISCHARGE_Q_MIN_DIGITS,
            COMPUTED_DISCHARGE_Q_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for W values in exports of historical
     * discharge curves.
     *
     * @return the number formatter for W values.
     */
    public static NumberFormat getHistoricalDischargeW(CallContext context) {
        return getFormatter(
            context,
            HISTORICAL_DISCHARGE_W_MIN_DIGITS,
            HISTORICAL_DISCHARGE_W_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for Q values in exports of historical
     * discharge curves.
     *
     * @return the number formatter for Q values.
     */
    public static NumberFormat getHistoricalDischargeQ(CallContext context) {
        return getFormatter(
            context,
            HISTORICAL_DISCHARGE_Q_MIN_DIGITS,
            HISTORICAL_DISCHARGE_Q_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for W values in duration curve exports.
     *
     * @return the number formatter for W values.
     */
    public static NumberFormat getDurationW(CallContext context) {
        return getFormatter(
            context,
            DURATION_W_MIN_DIGITS,
            DURATION_W_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for Q values in duration curve exports.
     *
     * @return the number formatter for W values.
     */
    public static NumberFormat getDurationQ(CallContext context) {
        return getFormatter(
            context,
            DURATION_Q_MIN_DIGITS,
            DURATION_Q_MAX_DIGITS);
    }


    /**
     * Returns the number formatter for D values in duration curve exports.
     *
     * @return the number formatter for W values.
     */
    public static NumberFormat getDurationD(CallContext context) {
        return getFormatter(
            context,
            DURATION_D_MIN_DIGITS,
            DURATION_D_MAX_DIGITS);
    }

    public static NumberFormat getCalculationKm(CallMeta meta) {
        return getFormatter(
            meta,
            CALCULATION_REPORT_KM_MIN_DIGITS,
            CALCULATION_REPORT_KM_MAX_DIGITS);
    }


    public static NumberFormat getFlowVelocityKM(CallContext context) {
        return getFormatter(
            context,
            FLOW_VELOCITY_KM_MIN_DIGITS,
            FLOW_VELOCITY_KM_MAX_DIGITS);
    }


    public static NumberFormat getFlowVelocityValues(CallContext context) {
        return getFormatter(
            context,
            FLOW_VELOCITY_VALUES_MIN_DIGITS,
            FLOW_VELOCITY_VALUES_MAX_DIGITS);
    }


    public static NumberFormat getFlowVelocityQ(CallContext context) {
        return getFormatter(
            context,
            FLOW_VELOCITY_Q_MIN_DIGITS,
            FLOW_VELOCITY_Q_MAX_DIGITS);
    }


    public static NumberFormat getMiddleBedHeightKM(CallContext context) {
        return getFormatter(
            context,
            MIDDLE_BED_HEIGHT_KM_MIN_DIGITS,
            MIDDLE_BED_HEIGHT_KM_MAX_DIGITS);
    }


    public static NumberFormat getMiddleBedHeightHeight(CallContext context) {
        return getFormatter(
            context,
            MIDDLE_BED_HEIGHT_HEIGHT_MIN_DIGITS,
            MIDDLE_BED_HEIGHT_HEIGHT_MAX_DIGITS);
    }


    public static NumberFormat getMiddleBedHeightUncert(CallContext context) {
        return getFormatter(
            context,
            MIDDLE_BED_HEIGHT_UNCERT_MIN_DIGITS,
            MIDDLE_BED_HEIGHT_UNCERT_MAX_DIGITS);
    }


    public static NumberFormat getMiddleBedHeightDataGap(CallContext context) {
        return getFormatter(
            context,
            MIDDLE_BED_HEIGHT_DATAGAP_MIN_DIGITS,
            MIDDLE_BED_HEIGHT_DATAGAP_MAX_DIGITS);
    }


    public static NumberFormat getMiddleBedHeightSounding(CallContext context) {
        return getFormatter(
            context,
            MIDDLE_BED_HEIGHT_SOUNDING_WIDTH_MIN_DIGITS,
            MIDDLE_BED_HEIGHT_SOUNDING_WIDTH_MAX_DIGITS);
    }


    public static NumberFormat getMiddleBedHeightWidth(CallContext context) {
        return getFormatter(
            context,
            MIDDLE_BED_HEIGHT_WIDTH_MIN_DIGITS,
            MIDDLE_BED_HEIGHT_WIDTH_MAX_DIGITS);
    }

    public static NumberFormat getFixDeltaWKM(CallContext context) {
        return getFormatter(
            context,
            FIX_DELTA_W_KM_MIN_DIGITS,
            FIX_DELTA_W_KM_MAX_DIGITS);
    }

    public static NumberFormat getFixDeltaWDeltaW(CallContext context) {
        return getFormatter(
            context,
            FIX_DELTA_W_DELTA_W_MIN_DIGITS,
            FIX_DELTA_W_DELTA_W_MAX_DIGITS);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org