Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixResultColumn.java @ 9479:2b83d3a96703
i18n TODO "benutzerdefiniert" = "custom" fixed
author | gernotbelger |
---|---|
date | Mon, 10 Sep 2018 15:31:55 +0200 |
parents | 9744ce3c3853 |
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.model.fixings; import java.io.Serializable; import java.util.Comparator; import java.util.Date; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.math.DoubleRange; import org.dive4elements.river.utils.KMIndex; /** * Result data is organized by their original fixing-column, represented by this class. * * @author Gernot Belger */ public class FixResultColumn implements Serializable { public static class DateComparator implements Comparator<FixResultColumn> { @Override public int compare(final FixResultColumn o1, final FixResultColumn o2) { final Date date1 = o1.getDate(); final Date date2 = o2.getDate(); return date1.compareTo(date2); } } private static final long serialVersionUID = 1L; /** We know the columnId is unique within the database, so this takes the place here as primary key */ private int columnId; private final KMIndex<QWD> data = new KMIndex<>(); private Date date; private DoubleRange stationRange; public FixResultColumn() { } public FixResultColumn(final int columnId, final Date date, final DoubleRange stationRange) { this.columnId = columnId; this.date = date; this.stationRange = stationRange; } public int getColumnId() { return this.columnId; } public DoubleRange getStationRange() { return this.stationRange; } public Date getDate() { return this.date; } public void addQWD(final double km, final QWD qwd) { this.data.add(km, qwd); } @Override public boolean equals(final Object obj) { if (obj == null) return false; if (obj == this) return true; if (obj.getClass() != getClass()) return false; final FixResultColumn rhs = (FixResultColumn) obj; return new EqualsBuilder() // .append(this.columnId, rhs.columnId) // .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder() // .append(this.columnId) // .toHashCode(); } public QWD getQWD(final double currentKm) { final KMIndex.Entry<QWD> entry = this.data.binarySearch(currentKm); if (entry == null) return null; return entry.getValue(); } public KMIndex<QWD> getQWDs() { return this.data; } }