view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/SedimentLoadAccess.java @ 4740:fb135e1dfa35

Added 'type' attribute to <dc:variable/> element. If an optional 'type' attribute is given the result of the XPATH expression is interpreted as this type. Valid values are 'number', 'bool', 'node' and 'nodeset'. All other defaults to 'string' which also is the default if nor type is given.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 02 Jan 2013 15:31:53 +0100
parents de4832ffde2a
children a3dc382bc1ca
line wrap: on
line source
package de.intevation.flys.artifacts.access;

import gnu.trove.TIntArrayList;

import org.apache.log4j.Logger;

import de.intevation.flys.artifacts.FLYSArtifact;


public class SedimentLoadAccess
extends RiverAccess
{
    private static final Logger logger = Logger.getLogger(BedHeightAccess.class);

    private int[] singleIDs;
    private int[] epochIDs;

    private Double lowerKM;
    private Double upperKM;

    private String time;
    private String unit;

    public SedimentLoadAccess(FLYSArtifact artifact) {
        super(artifact);
    }

    public Double getLowerKM() {
        if (lowerKM == null) {
            lowerKM = getDouble("ld_from");
        }

        return lowerKM;
    }

    public Double getUpperKM() {
        if (upperKM == null) {
            upperKM = getDouble("ld_to");
        }

        return upperKM;
    }

    public String getYearEpoch() {
        if (time == null) {
            time =  getString("ye_select");
        }
        return time;
    }

    public int[] getPeriod() {
        if (getYearEpoch().equals("year") ) {
            Integer start = getInteger("start");
            Integer end = getInteger("end");
            if (start == null || end == null) {
                logger.warn("No 'start' or 'end' parameter specified!");
                return null;
            }

            return new int[]{start.intValue(), end.intValue()};
        }
        return null;
    }

    public int[][] getEpochs() {
        if (getYearEpoch().equals("epoch") ||
            getYearEpoch().equals("off_epoch")
        ) {
            String data = getString("epochs");

            if (data == null) {
                logger.warn("No 'epochs' parameter specified!");
                return null;
            }

            String[] parts = data.split(";");

            int[][] list = new int[parts.length][];

            for (int i = 0; i < parts.length; i++) {
                String[] values = parts[i].split(",");
                TIntArrayList ints = new TIntArrayList();
                try {
                    ints.add(Integer.parseInt(values[0]));
                    ints.add(Integer.parseInt(values[1]));
                    list[i] = ints.toNativeArray();
                }
                catch (NumberFormatException nfe) {
                    logger.warn("Cannot parse int from string: '" + values + "'");
                }
            }
            return list;
        }

        return null;
    }

    public String getUnit () {
        if (unit == null) {
            unit = getString("unit");
        }
        return unit;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org