view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/Calculation4Access.java @ 5462:f2371f3aaf03

Show top level folder icons only if node has no factory If you have an empty folder the folder icon is still shown. This makes it possible to add functional "Top Level" entries in the Datacage
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 26 Mar 2013 18:29:13 +0100
parents f2e7f07f608d
children
line wrap: on
line source
package de.intevation.flys.artifacts.access;

import de.intevation.flys.artifacts.FLYSArtifact;

import de.intevation.flys.artifacts.model.Segment;

import java.util.Collections;
import java.util.List;

import org.apache.log4j.Logger;

import de.intevation.flys.utils.DoubleUtil;

public class Calculation4Access
extends      RangeAccess
{
    private static Logger log = Logger.getLogger(Calculation4Access.class);

    protected List<Segment> segments;

    protected double [] fromToStep;

    protected Boolean isQ;

    protected Boolean isRange;


    public Calculation4Access(FLYSArtifact artifact) {
        super(artifact, null);
    }

    public List<Segment> getSegments() {
        if (segments == null) {
            String input = getString("wq_values");
            if (input == null || (input = input.trim()).length() == 0) {
                log.warn("no wq_values given");
                segments = Collections.<Segment>emptyList();
            }
            else {
                segments = Segment.parseSegments(input);
            }
        }
        return segments;
    }

    public boolean isQ() {
        if (isQ == null) {
            Boolean value = getBoolean("wq_isq");
            isQ = value != null && value;
        }
        return isQ;
    }

    public boolean isRange() {
        if (isRange == null) {
            String mode = getString("ld_mode");
            isRange = mode == null || mode.equals("distance");
        }
        return isRange;
    }

    public double [] getFromToStep() {
        if (fromToStep == null) {
            // XXX: Is this really needed in this calculation?
            if (!isRange()) {
                return null;
            }

            // XXX: FLYSArtifact sucks!
            // TODO further use RangeAccess functionality.
            double [] fromTo = getKmRange();

            if (fromTo == null) {
                return null;
            }

            Double dStep = getDouble("ld_step");
            if (dStep == null) {
                return null;
            }

            fromToStep =  new double [] {
                fromTo[0],
                fromTo[1],
                DoubleUtil.round(dStep / 1000d)
            };
        }
        return fromToStep;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org