/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics; import org.threeten.bp.LocalDate; import org.threeten.bp.Period; /** * */ public class LocalDateLabelledMatrix1D extends LabelledMatrix1D<LocalDate, Period> { private static final Period TOLERANCE = Period.ofDays(1); public LocalDateLabelledMatrix1D(final LocalDate[] keys, final double[] values) { super(keys, values, TOLERANCE); } public LocalDateLabelledMatrix1D(final LocalDate[] keys, final Object[] labels, final double[] values) { super(keys, labels, values, TOLERANCE); } public LocalDateLabelledMatrix1D(final LocalDate[] keys, final Object[] labels, final String labelsTitle, final double[] values, final String valuesTitle) { super(keys, labels, labelsTitle, values, valuesTitle, TOLERANCE); } @Override public int compare(final LocalDate d1, final LocalDate d2, final Period tolerance) { if (tolerance == TOLERANCE) { return d1.compareTo(d2); //TOLERANCE == 1ns => this degenerate case } final LocalDate dLow = d1.minus(tolerance); final LocalDate dHigh = d1.plus(tolerance); if (d1.equals(d2) || (d2.isAfter(dLow) && d2.isBefore(dHigh))) { return 0; } return d1.isBefore(d2) ? -1 : 1; } @Override public LabelledMatrix1D<LocalDate, Period> getMatrix(final LocalDate[] keys, final Object[] labels, final String labelsTitle, final double[] values, final String valuesTitle) { return new LocalDateLabelledMatrix1D(keys, labels, labelsTitle, values, valuesTitle); } @Override public LabelledMatrix1D<LocalDate, Period> getMatrix(final LocalDate[] keys, final Object[] labels, final double[] values) { return new LocalDateLabelledMatrix1D(keys, labels, values); } @Override public LabelledMatrix1D<LocalDate, Period> getMatrix(final LocalDate[] keys, final double[] values) { return new LocalDateLabelledMatrix1D(keys, values); } }