view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/BedHeightAccess.java @ 4496:d8992459b408

Add method to return the facets of an artifact This methos should be used to get the facets of an artifact instead of accessing the facets member variable directly.
author Björn Ricks <bjoern.ricks@intevation.de>
date Wed, 14 Nov 2012 11:11:04 +0100
parents 0f60efc39953
children cd44d28d0fbc
line wrap: on
line source
package de.intevation.flys.artifacts.access;

import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.states.SoundingsSelect;

import gnu.trove.TIntArrayList;

import org.apache.log4j.Logger;


public class BedHeightAccess extends Access {

    private static final Logger logger = Logger.getLogger(BedHeightAccess.class);

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

    private Double lowerKM;
    private Double upperKM;

    private String time;

    public BedHeightAccess(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 int[] getBedHeightSingleIDs() {
        if (singleIDs == null) {
            String data = getString("soundings");

            if (data == null) {
                logger.warn("No 'soundings' parameter specified!");
                return null;
            }
            else {
                logger.debug("getBedHeightSingleIDs(): data=" + data);
            }

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

            TIntArrayList ids = new TIntArrayList();

            for (String part: parts) {
                if (part.indexOf(SoundingsSelect.PREFIX_SINGLE) >= 0) {
                    String tmp = part.replace(SoundingsSelect.PREFIX_SINGLE, "");

                    try {
                        int i = Integer.parseInt(tmp);
                        if (!ids.contains(i)) {
                            ids.add(i);
                        }
                    }
                    catch (NumberFormatException nfe) {
                        logger.warn("Cannot parse int from string: '" + tmp + "'");
                    }
                }
            }

            singleIDs = ids.toNativeArray();
        }

        return singleIDs;
    }


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


    public int[] getBedHeightEpochIDs() {
        if (epochIDs == null) {
            String data = getString("soundings");

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

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

            TIntArrayList ids = new TIntArrayList();

            for (String part: parts) {
                if (part.indexOf(SoundingsSelect.PREFIX_EPOCH) >= 0) {
                    String tmp = part.replace(SoundingsSelect.PREFIX_EPOCH, "");

                    try {
                        ids.add(Integer.parseInt(tmp));
                    }
                    catch (NumberFormatException nfe) {
                        logger.warn("Cannot parse int from string: '" + tmp + "'");
                    }
                }
            }

            epochIDs = ids.toNativeArray();
        }

        return epochIDs;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org