public final class DailyBreakdown extends DatedBreakdown implements java.io.Serializable
DatedBreakdown used to specify that degree days should
be broken down on a daily basis and cover a specific Period in time.Instances of this class are immutable. You can safely reuse them and call them from multiple threads at once.
| Constructor and Description |
|---|
DailyBreakdown(Period period)
Constructs a
DailyBreakdown object that specifies daily
degree days covering the specified period in time. |
| Modifier and Type | Method and Description |
|---|---|
DayRange |
getFullRangeOrNull(DayRange availableDataRange)
Returns the range of days that this breakdown would cover given source
data covering
availableDataRange, or null if
availableDataRange would not be enough for this breakdown. |
Period |
period()
Returns the non-null period in time that the daily breakdown should
cover.
|
MaybeEmptyDayRanges |
toDayRanges(DayRange availableDataRange)
Returns the breakdown in terms of the day ranges that would constitute it
given source data covering
availableDataRange. |
java.lang.String |
toString()
Returns a non-null, non-empty string representation of this object for logging and debugging purposes.
|
DailyBreakdown |
withAllowPartialLatest(boolean allowPartialLatest)
Returns a
DailyBreakdown with the same period() as
this, but with the DatedBreakdown.allowPartialLatest() property
set to the specified value. |
allowPartialLatest, custom, daily, monthly, monthly, weekly, yearly, yearlypublic DailyBreakdown(Period period)
DailyBreakdown object that specifies daily
degree days covering the specified period in time.period - the period in time that the daily breakdown should cover.
Cannot be null.java.lang.NullPointerException - if period is null.public Period period()
public DailyBreakdown withAllowPartialLatest(boolean allowPartialLatest)
DailyBreakdown with the same period() as
this, but with the DatedBreakdown.allowPartialLatest() property
set to the specified value.
The allowPartialLatest property makes it possible to fetch
time-series data
(like hourly temperature data) that includes
time-series-data
values for the current (incomplete) day. See
DatedBreakdown.allowPartialLatest() for more on how it works.
allowPartialLatest - true to specify that the latest
day of time-series data can be partially filled (i.e. incomplete),
or false if the latest day must be complete (the
default behaviour).DatedBreakdown.allowPartialLatest()public MaybeEmptyDayRanges toDayRanges(DayRange availableDataRange)
availableDataRange.
If you call fullRangeOrNull() on the return value, you'll get the same result that
you'd get by calling getFullRangeOrNull(availableDataRange) on this object. Essentially this
method is a more detailed version of getFullRangeOrNull that
makes sense for dated breakdowns, which translate to real ranges of days
on a calendar (unlike average breakdowns which are broken down into
months of an "average year" rather than applying to a real calendar).
toDayRanges in class DatedBreakdownavailableDataRange - the range of temperature data available (or the
available range of daily degree-day data if summing daily degree
days into a different breakdown). Cannot be null.java.lang.NullPointerException - if availableDataRange is
null.public DayRange getFullRangeOrNull(DayRange availableDataRange)
availableDataRange, or null if
availableDataRange would not be enough for this breakdown.getFullRangeOrNull in class BreakdownavailableDataRange - the range of temperature data available (or the
available range of daily degree-day data if summing daily degree
days into a different breakdown). Cannot be null.java.lang.NullPointerException - if availableDataRange is
null.public java.lang.String toString()
The exact details of the representation are unspecified and subject to change.
toString in class java.lang.Object
See www.degreedays.net/api/ for more about the Degree Days.net API.
You can sign up for a Degree Days.net API account and read the integration guide that is useful and applicable whether you are using Java or not.