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, yearly
public 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 DatedBreakdown
availableDataRange
- 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 Breakdown
availableDataRange
- 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.