view artifacts/src/main/java/org/dive4elements/river/artifacts/common/GeneralResultType.java @ 9318:7b2b086e45f0

collision pdf details, ResultType refactoring, bezugswst result
author gernotbelger
date Fri, 27 Jul 2018 10:11:23 +0200
parents 740d65e4aa14
children
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by
 *  Björnsen Beratende Ingenieure GmbH
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */
package org.dive4elements.river.artifacts.common;

import java.text.NumberFormat;
import java.util.Date;

import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.artifacts.sinfo.common.SInfoI18NStrings;
import org.dive4elements.river.utils.Formatter;

/**
 * @author Domenico Nardi Tironi
 *
 */
public abstract class GeneralResultType extends AbstractResultType {

    private static final long serialVersionUID = 1L;

    public static final GeneralResultType station = new GeneralResultType(I18NStrings.UNIT_KM, I18NStrings.CSV_KM_HEADER) {
        @Override
        public String exportValue(final CallContext context, final Object value) {
            final double doubleValue = asDouble(value);
            return exportDoubleValue(context, doubleValue);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            return Formatter.getWaterlevelKM(context);
        }
    };
    public static final GeneralResultType waterlevelLabel = new GeneralResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LABEL_HEADER) {
        private static final long serialVersionUID = 1L;

        @Override
        public String exportValue(final CallContext context, final Object value) {
            return exportStringValue(value);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            throw new UnsupportedOperationException();
        }
    };

    public static final GeneralResultType date = new GeneralResultType(I18NStrings.UNIT_NONE, I18NStrings.CSV_META_DATE) {
        @Override
        public String exportValue(final CallContext context, final Object value) {
            return exportDateValue(context, (Date) value);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            throw new UnsupportedOperationException();
        }
    };

    public static final GeneralResultType dateShort = new GeneralResultType(I18NStrings.UNIT_NONE, "sinfo.export.csv.meta.date") {
        @Override
        public String exportValue(final CallContext context, final Object value) {
            return exportDateValue(context, (Date) value);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            throw new UnsupportedOperationException();
        }
    };

    private GeneralResultType(final String unit, final String csvHeader) {

        super(unit, csvHeader, csvHeader);
    }

    private GeneralResultType(final String unit, final String csvHeader, final String pdfHeader) {
        super(unit, csvHeader, pdfHeader);
    }

    public static final GeneralResultType location = new GeneralResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_LOCATION_HEADER) {
        private static final long serialVersionUID = 1L;

        @Override
        public String exportValue(final CallContext context, final Object value) {
            return exportStringValue(value);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            throw new UnsupportedOperationException();
        }
    };

    public static final GeneralResultType dischargeQwithUnit = new GeneralResultType(I18NStrings.UNIT_NONE, "common.export.csv.header.q",
            "common.export.csv.header.q") { // Q [m³/s]
        private static final long serialVersionUID = 1L;

        @Override
        public String exportValue(final CallContext context, final Object value) {
            final double doubleValue = asDouble(value);
            return exportDoubleValue(context, doubleValue);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            return Formatter.getWaterlevelQ(context);
        }
    };

    public static final GeneralResultType gaugeLabel = new GeneralResultType(I18NStrings.UNIT_NONE, SInfoI18NStrings.CSV_GAUGE_HEADER) {
        private static final long serialVersionUID = 1L;

        @Override
        public String exportValue(final CallContext context, final Object value) {
            return exportStringValue(value);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            throw new UnsupportedOperationException();
        }
    };

    public static final GeneralResultType gaugeLabelCm = new GeneralResultType(I18NStrings.UNIT_NONE, "chart.reference.curve.x.axis.in.cm") {
        private static final long serialVersionUID = 1L;

        @Override
        public String exportValue(final CallContext context, final Object value) {
            return exportStringValue(value);
        }

        @Override
        protected NumberFormat createFormatter(final CallContext context) {
            throw new UnsupportedOperationException();
        }
    };
}

http://dive4elements.wald.intevation.org