/***************************************************************************** * Limpet - the Lightweight InforMation ProcEssing Toolkit * http://limpet.info * * (C) 2015-2016, Deep Blue C Technologies Ltd * * This library is free software; you can redistribute it and/or * modify it under the terms of the Eclipse Public License v1.0 * (http://www.eclipse.org/legal/epl-v10.html) * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *****************************************************************************/ package info.limpet; import javax.measure.Measurable; import javax.measure.quantity.Quantity; //public interface IQuantityCollection<Q extends Quantity> extends //IObjectCollection<Measurable<Q>>, IBaseQuantityCollection<Q> public interface ITemporalQuantityCollection<Q extends Quantity> extends ITemporalObjectCollection<Measurable<Q>>, IBaseQuantityCollection<Q>, IQuantityCollection<Q> { enum InterpMethod { Linear, Nearest, Before, After }; /** * allow values to be added without explicitly specifying units * * @param time * timestamp * @param value * the value to add (cast to existing units) */ void add(long time, Number value); /** * approximate the value to use at the supplied time stamp * * @param time * @param interpMethod * @return */ Measurable<Q> interpolateValue(long time, InterpMethod interpMethod); }